1 pontos por GN⁺ 2023-07-31 | 1 comentários | Compartilhar no WhatsApp
  • Khoj é um app pessoal de IA que amplia as capacidades do usuário, com uma arquitetura escalável que vai de IA pessoal on-device até IA empresarial em escala de nuvem
  • É possível conversar com LLMs locais ou online; alguns modelos de exemplo são llama3, qwen, gemma, mistral, gpt, claude, gemini e deepseek
  • Pode obter respostas da internet e de documentos, com suporte a formatos como imagens, PDF, Markdown, org-mode, Word e arquivos do Notion
  • Pode ser acessado via Browser, Obsidian, Emacs, Desktop, Phone e Whatsapp, com suporte à criação de agentes com conhecimento, persona, modelo de chat e ferramentas personalizados
  • Suporta automação de pesquisas repetitivas, entrega de newsletters pessoais e alertas inteligentes na inbox, exploração de documentos relacionados por meio de busca semântica avançada, geração de imagens, conversas por voz e reprodução de mensagens
  • É open source e pode ser self-hosted, rodando de forma privada no computador do usuário ou sendo usado no app em nuvem
  • A versão Enterprise é oferecida como serviço em nuvem, on-premises e solução híbrida

1 comentários

 
GN⁺ 2023-07-31
Opiniões do Hacker News
  • Na landing page do site, não vejo nenhum caso de uso com Llama ou offline; parece que só é mencionado o uso online via OpenAI
    Também fiquei curioso sobre qual tamanho de modelo e fine-tuning vocês usam, e como avaliaram o desempenho nesse caso de uso
    Usei um pouco o Llama 2 nos tamanhos 7B e 13B, e tive a impressão de que ele consome bastante RAM em máquinas de consumidor, então o potencial é realmente empolgante
    Também queria saber se a busca usa embeddings e um banco de dados vetorial com filtragem adicional de metadados, como comandos de data

    • O conteúdo do site está desatualizado, então vou tentar atualizá-lo ainda hoje
      O Khoj usa o Llama 7B 4-bit quantized GGML do TheBloke
      É algo próximo do primeiro modelo de chat offline que dá respostas coerentes a consultas do usuário quando as notas são incluídas como contexto, e também é interessante que ele seja mais conversacional do que o GPT-3.5+
    • Como alguém que não conhece bem os detalhes de integrações com IA, sempre me pergunto se projetos assim podem ser usados em modo exclusivamente local
      Se houver uma garantia de que, ao fazer self-hosting, informações pessoais não serão enviadas a nenhum serviço remoto, ajudaria muito deixar essa garantia de privacidade bem explícita
  • Ao ver isso, achei realmente incrível, e acredito que a execução local é o verdadeiro futuro da IA
    Testei em um MacBook Air M2 pequeno e ele travou completamente
    Lembrou-me de quando PCs antigos pegavam vírus e, 45 segundos depois de mexer o mouse, o cursor finalmente se movia; foi estranhamente nostálgico
    Acho que preciso reduzir minhas expectativas de desempenho para este Air; é a primeira vez que passo por algo assim

    • Daqui a uns 10 anos, os computadores terão uma unidade de processamento de IA dedicada, e não precisaremos nos preocupar em o sistema travar por conversar com um bot
    • Fiquei curioso sobre quanta memória tem o MacBook
      O modelo 7B costuma funcionar bem com 16 GB ou mais de memória unificada, mas vi Macs com 8 GB sofrerem bastante
  • Será que também daria para pegar o conteúdo do meu histórico web de um dia e resumir em notas o que pesquisei?
    Está chegando cada vez mais perto do ideal de uma IA pessoal
    Mal posso esperar para, em alguns anos, ter um cérebro digital preenchido com tudo o que eu sei

    • Parece que seria bem legal
      Criar uma extensão de navegador que resuma o histórico web diário não parece ser um trabalho tão grande, e imagino que já exista algo parecido
      Indexar todo o rastro digital e torná-lo fácil de digerir seria algo de enorme valor
      Espero que o Khoj se torne isso
    • https://www.rewind.ai
    • Tive exatamente a mesma pergunta, e isso poderia resolver um incômodo real
      Gostaria de saber se há recomendações de ferramentas que façam isso
      Ou também gostaria de encontrar alguém para criar isso junto
  • Para que serve a telemetria do PostHog?
    Não entendo por que não há nada na documentação e por que não existe uma forma clara de opt-out

    • Usamos para entender o uso
      Por exemplo, para saber se as pessoas usam Markdown, org etc.
      Todos os dados são coletados de forma totalmente anonimizada, e nenhuma informação identificável é enviada ao servidor de telemetria
      Para fazer opt-out, defina o valor de should-log-telemetry como false em khoj.yml
      Adicionamos à documentação o que é coletado e como: https://docs.khoj.dev/#/telemetry
    • Foi bem fácil de remover, então acabei fazendo isso
      Fora isso, o projeto funciona surpreendentemente bem
  • Parece um projeto bacana
    Seria ótimo se também pudesse fazer indexação de diretórios de PDFs e até aplicar OCR nos PDFs para indexar documentos escaneados
    Isso pode estar fora do escopo atual do projeto, mas poucos dias atrás eu estava pensando que seria bom ter uma ferramenta assim

    • Poder pesquisar e conversar com arquivos PDF seria bem útil
      O Khoj consegue indexar diretórios de PDFs para busca e chat
      Porém, no momento, ele não lida com PDFs escaneados que não têm texto selecionável
      Seria ótimo conseguir lidar também com esses arquivos; só falta implementar
      Espero que isso chegue em breve
    • Há tempos eu queria um crawler local que rode na minha máquina e classifique, organize, marque e mova todos os arquivos automaticamente
      Ele poderia rastrear PDFs, downloads, screenshots, fotos etc., mostrar uma árvore lógica de organização dos arquivos e permitir ajustes como: “adicione aqui os PDFs relacionados a este tema e organize por fonte/autor; depois mova as screenshots para cá em ordem de data”
      Sempre quis um computador que eu pudesse simplesmente chamar de “COMPUTADOR.”
      Eu digo “COMPUTADOR!”, e ele responde “Senhor, você precisa usar o teclado” — ah, o teclado, que coisa antiquada
  • Parece que usa gpt4all; fiquei curioso se existe uma forma oficialmente suportada de trocar o modelo de inferência local
    Muitos apps projetados para as APIs de completion/chat da OpenAI funcionam de maneira quase idêntica simplesmente apontando para o endpoint fornecido pelo llama-cpp-python [0], permitindo usar vários modelos e quantizações compatíveis com o llama.cpp
    Assim, dá para rodar modelos maiores no hardware que você quiser, incluindo aceleração Metal no Apple Silicon ou GPUs NVIDIA, e também usar outros proxies como o openrouter.io
    Pessoalmente, gosto de usar o openrouter.io porque ele dá suporte ao modelo de 100k da Anthropic
    [0]: https://github.com/abetlen/llama-cpp-python

    • O ponto central do gpt4all é permitir trocar de modelo sem grandes quebras
      Acho que basta trocar esta linha https://github.com/khoj-ai/khoj/blob/master/src/khoj/process... pelo modelo desejado
      Você terá que criar a imagem localmente com docker-compose, mas deve ser relativamente simples
    • Ainda não há suporte oficial
      Vários desenvolvedores querem experimentar diferentes modelos, mas queremos seguir numa direção que seja fácil de usar e, ao mesmo tempo, ofereça ajuda profunda
      Como os recursos são limitados, ainda estamos refletindo um pouco sobre onde concentrar os esforços
  • Comecei a usar o Obsidian e, do ponto de vista de alguém que está mexendo com IA de chat, isso é realmente excelente

    • Seria bom testar se serve para meu caso de uso e me contar
    • É um projeto que dá vontade de migrar para o Obsidian :D
  • Ainda não usei, mas algo assim definitivamente precisa existir
    Se você não tiver uma GPU boa o suficiente, acho que ainda não deve ser muito utilizável em hardware de consumidor, mas tenho certeza de que isso será possível em alguns anos, ou até antes
    O logo também é bonito e gostei das cores
    Para esse tipo de caso de uso, o Llama 2 parece suficientemente competente, então, especialmente quando privacidade é importante, pagar pelo ChatGPT fica menos atraente
    Espero que continuem construindo bem

    • Acho que o Llama V2 vai ficar bom o bastante para substituir o ChatGPT, ou seja, o GPT-3.5, em muitos casos de uso
  • Usei o Khoj por um dia e ele é realmente limpo e bem feito
    Tenho algumas observações

    1. A telemetria vem ativada por padrão e pode incluir consultas à API e ao chat
      Deixei uma issue e uma sugestão sobre isso aqui: https://github.com/khoj-ai/khoj/issues/389
    2. Seria bom poder configurar pela UI, em vez de embutir a configuração YAML na imagem do contêiner
      Também adicionei uma nota na issue do GitHub acima
    3. Não está claro se dá para trazer um modelo próprio
      Por exemplo, gostaria de saber se é possível configurar um modelo huggingface/gpt4all e, se for, se ele é baixado automaticamente pelo nome ou se é preciso colocar um .bin e um YAML em algum volume
    4. Aceleração por GPU/APU AMD, ou seja, suporte a CLBLAS, seria muito bom, e também registrei esse pedido de recurso como issue: https://github.com/khoj-ai/khoj/issues/390
    • O Khoj não coleta termos de busca nem consultas de chat
      Como escrevemos na documentação, você pode ver diretamente o servidor de telemetria[1]
      Se vir algo estranho, avise e faremos um hotfix imediatamente
      Todos os metadados de telemetria também podem ser verificados aqui[2]
      [1]: https://github.com/khoj-ai/khoj/tree/master/src/telemetry
      [2]: https://github.com/khoj-ai/khoj/blob/master/src/khoj/routers...
      A configuração do docker-compose é um pouco específica, então veja a issue correspondente para mais detalhes
      Obrigado também pela observação sobre integração com GPU; para deixar claro, usamos otimização de GPU para indexação, mas ainda não para o chat local baseado em Llama
      Estamos trabalhando para fazer essa parte funcionar
    • Seria possível oferecer suporte a uma URL personalizada para modelos locais, como a que se obtém ao executar ./server no ggml?
      Se o contexto de busca estiver sendo pré-tokenizado, talvez isso seja mais difícil
      O projeto é muito legal
  • Achei interessante você mencionar C-s
    isearch-forward costuma ser usado para busca por correspondência literal de baixa latência
    Fico curioso em quais fluxos de trabalho o Khoj poderia oferecer latência aceitável ou utilidade melhor a ponto de ser visto como substituto do isearch
    Você tem algum exemplo de como o usa ao navegar por documentos?

    • A busca do Khoj faz quase exatamente esse papel
      Ela oferece uma experiência de busca enquanto você digita, mas com uma interface de busca em linguagem natural, não por palavras-chave
      Meu fluxo de trabalho é assim
      1. Buscar com a busca do Khoj[1]: C-c s s RET
      2. Pular para o item relacionado com speed key[2]: n n o 2
        [1]: C-c s está associado ao menu transitório khoj
        [2] https://orgmode.org/manual/Speed-Keys.html