• Как можно реализовать помощника, который мог бы отвечать на вопросы исходя из моей базы знаний?

    Уже реализовано в PrivateGPT

    Добавлено
    Реализовал KB (Knowledge-Base) агент, которому можно скормить свои файлы в формате Вопрос-Ответ. В итоге можно задавать вопросы на простом языке.
    https://github.com/romiras/kb-agent
    Ответ написан
    4 комментария
  • Как обработать ошибку потери соединения?

    Нужно добавить обработку исключения http.client.RemoteDisconnected
    Ответ написан
    Комментировать
  • Как понять, что все сообщения в очереди обработаны?

    По мне, так для того, чтобы знать когда задача обработана, достаточно отправлять сообщение об окончании в отдельную очередь "оповещения". Обработчик очереди будет слушать ее и может запустить "агрегирующие процессы".

    Соответственно, узнать длину очереди в таком состоянии воркер не может.
    Обработчики очередей не должны заботиться о длине очереди. Это не их ответственность. Они находятся в постоянной готовности обработать следующую задачу.

    Плюс, воркер в процессе собирает статистику, и должен как-то отдать её в конце работы. Я пока что решил это таким способом: напихиваю в конец очереди N (по числу воркеров) специальных заданий останова - воркер получает такое задание, отключается от очереди и делает всё необходимое.

    статистику можно сохранять в СУБД, отправлять в какую-либо отдельную очередь "отчеты" и пр. (в общем обмениваться через IPC).
    Ответ написан
    1 комментарий
  • Какому ИИ сервису гугла можно скормить документ и потом задавать вопросы по нему?

    Готового сервиса пока нет, насколько мне известно. Однако, можно построить его самостоятельно, при помощи
    Word embedding — (векторное) представление слова

    Чудесный мир Word Embeddings: какие они бывают и з... - прочесть введение достаточно для понимания.

    Имея векторное представление текста (обычно небольшого), можно хранить его в векторной СУБД и по запросу находить имеющие отношения записи, сравнивая вектора этих текстов.
    Этот механизм позволит искать похожий по смыслу текст. Но не более того. Зато быстро.

    Как получить представление слова при помощи Vertex AI:
    https://cloud.google.com/vertex-ai/generative-ai/d...

    Если нужно понимать смысл текста документов, тогда нужно использовать БЯМ. Для этого необходимо дообучать модель на наборе текстов документов.
    Ответ написан
    4 комментария
  • Какие сканеры уязвимости посоветуете?

    Выбрать подходящие из списка:
    https://owasp.org/www-community/Vulnerability_Scan...
    Ответ написан
    Комментировать
  • Какой носитель выбрать для долгосрочного хранения данных в случае ЧС?

    Есть менее очевидные варианты, такие как облачные хостинги. Можно хранить в S3 бакете, можно в Dropbox.
    Ответ написан
    Комментировать
  • Почему эластику стало не хватать место в докере?

    Лучше вынести данные Эластика в отдельный том. Читай про Docker volumes.
    https://gist.github.com/anjilinux/f716adba057a2955...

    Еще попробуй добавить в docker-compose.yml в environment:
    - "cluster.routing.allocation.disk.watermark.low=90%"
          - "cluster.routing.allocation.disk.watermark.high=95%"
          - "cluster.routing.allocation.disk.watermark.flood_stage=97%"
    (тег кода портит отступы)
    Fix watermark errors
    Ответ написан
    Комментировать
  • Как я могу сделать поиск по нескольким значениям в js используя elasticsearch?

    Можно иметь несколько полей для каждого вида сущности.

    Можно в строке поиска указывать с ключевыми словами, напр.:
    г. Новохрюпинск
    рег. Апигени
    обл. Визтоль
    шт. Бараханд

    Тогда, определив что за сущность, искать по соответствующему полю.
    Ответ написан
    Комментировать
  • Не удается подключиться к ClickHouse container?

    Клиент ClickHouse работает на хосте или так же в Докере, в одной сети?
    Если первое, то на хосте имя clickhouse-server не будет резолвиться. Тогда нужно указывать просто localhost.
    Ответ написан
    6 комментариев
  • Как получить удалённый доступ к http контейнеру?

    Есть способ, который подходит только временно. Не для продакшена.
    С агентом Ngrok (обычно доступен в репозиториях) или его альтернативами:
    агент запускается локально и создает тоннель на локально работающий веб-сервер или другой сервис, работающий на определенном порту.
    Контейнер Докера должен пробросить порт приложения. Скажем, порт 3000.
    spoiler

    NAME:
      ngrok - tunnel local ports to public URLs and inspect traffic
    
    USAGE:
      ngrok [command] [flags]
    
    DESCRIPTION: 
      ngrok exposes local networked services behinds NATs and firewalls to the
      public internet over a secure tunnel. Share local websites, build/test
      webhook consumers and self-host personal services.
      Detailed help for each command is available with 'ngrok help <command>'.
      Open http://localhost:4040 for ngrok's web interface to inspect traffic.
    
    Author:
      ngrok - <support@ngrok.com>
    
    TERMS OF SERVICE: https://ngrok.com/tos
    
    EXAMPLES: 
      ngrok http 80                           # secure public URL for port 80 web server
      ngrok http --domain baz.ngrok.dev 8080  # port 8080 available at baz.ngrok.dev
      ngrok http foo.dev:80                   # tunnel to host:port instead of localhost
      ngrok http https://localhost            # expose a local https server
      ngrok tcp 22                            # tunnel arbitrary TCP traffic to port 22
      ngrok tls --domain=foo.com 443          # TLS traffic for foo.com to port 443
      ngrok start foo bar baz                 # start tunnels from the configuration file
    
    COMMANDS:
      api                            use ngrok agent as an api client
      completion                     generates shell completion code for bash or zsh
      config                         update or migrate ngrok's configuration file
      credits                        prints author and licensing information
      diagnose                       diagnose connection issues
      help                           Help about any command
      http                           start an HTTP tunnel
      service                        run and control an ngrok service on a target operating system
      start                          start tunnels by name from the configuration file
      tcp                            start a TCP tunnel
      tls                            start a TLS tunnel
      tunnel                         start a tunnel for use with a tunnel-group backend
      update                         update ngrok to the latest version
      version                        print the version string
    
    OPTIONS:
          --config strings    path to config files; they are merged if multiple
      -h, --help              help for ngrok
          --metadata string   opaque user-defined metadata for the tunnel session
      -v, --version           version for ngrok

    Ответ написан
    Комментировать
  • Как в ClickHouse выбрать данные с БД учитывая тайм зону?

    А зачем вообще учитывать часовой пояс при запросе к СУБД?
    Работай с UTC ровно до того момента, где реально необходимо отобразить, будь то в отчете или на стороне клиента, в JS.
    Ответ написан
  • Парсер получает ответ 403, как исправить?

    Просто не надо долбить целевой сервер большим количеством одновременных запросов.
    Проверять в заголовке "Retry-After" и повторять попытку позже когда сервер слишком занят.
    Можно использовать asyncio.Semaphore для ограничения одновременного кол-ва запросов.
    Ответ написан
  • Можно ли с ChatGPT создать отчеты и графики на основе GoogleSheets?

    Первая мысль: а зачем вообще здесь нужен ИИ?
    Можно ведь построить графики средствами самого Google Sheets. Ну или экспортировать в CSV и оттуда в какую-то СУБД, чтобы сделать запрос.

    А, вообще, вроде бы, при помощи Amazon Bedrock можно создавать запросы к СУБД, на основе которых уже можно строить любые графики.
    AWS Bedrock Gen AI - Generate SQL Code

    Дополнение
    Но мне интересно проверить, может ли "AI" упростить это.

    насколько я понимаю, речь идёт о составлении запросов на основе набора данных в Google Sheets. Используя питоновский пакет LangChain, можно подключить к СУБД и составлять запросы от ИИ человеческим языком. Получив ответ на запрос, нужно программно вставить данные ответа и график.
    В https://developers.google.com/sheets/api/samples/charts описано как программно создавать графики.
    Ответ написан
    5 комментариев
  • Как часто стоит открывать и закрывать соединение при записи в БД из Kafka?

    Просто используй пул соединений к СУБД в своей программе. Тогда открытием и закрытием будет заниматься этот механизм.

    Не закрывать соединение вообще
    это нехороший вариант, по очевидным причинам.
    Ответ написан
    Комментировать
  • Существует ли максимально простой и универсальный способ сборки проектов с GitHub в готовый exe?

    В порядке эксперимента, не используя Visual Studio вообще, создал форк проекта soleiledit на GitHub, и при помощи добавленного сценария GitHub Actions смог собрать выпуск v1.0.0 для древней версии проекта, использующей .NET 2.0, собрал под .NET 4.0. И всё это, используя лишь веб-браузер, аккаунт GitHub, ИИ ассистента и скудные знания о разработке на .NET восьмилетней давности.
    Как это работает:
    при создании нового выпуска запускается сценарий на серверах GitHub, который скачивает код с репозитория, собирает код (с MSBuild) на сервере Windows Server 2019 (установлена нужная версия .NET) и затем создаётся выпуск версии, затем упаковывается ZIP и прикрепляется к выпуску.
    6610904be927b869007795.png
    Любой желающий сможет зайти, скачать ZIP и запустить у себя на компьютере, при наличии необходимой установленной версии .NET .
    Было ли это просто? Наверное, нет. Но не было ничего сложного. Надо было поставить серию экспериментов для достижения результата.

    Аналогичным образом можно собрать проекты:
    1. на C++ необходимо проверить какая используется сборочная система. Часто используется Autoconf (присутствует файл configure.ac). В сочетании со сборочной системой CMake (присутствует файл CMakeLists.txt). Вообще, в Readme обычно можно найти инструкции по сборке. А, порой - в разделе Wiki проекта. На примере проекта Tesseract: страница https://tesseract-ocr.github.io/tessdoc/Compiling.html содержит инструкции по самостоятельной сборке или на странице https://tesseract-ocr.github.io/tessdoc/Installati... можно скачать скомпилированный набор файлов.
    2. на Python (нужной версии) обычно выполняется установка зависимостей с pip install -r requirements.txt, затем сама установка с python setup.py build.

    Если пойти дальше, то такие средства, как Chocolatey, которые снимают нагрузку по разрешению задач, связанных с установкой разного ПО и имеют список ПО, которое можно установить одной командой. Пример: https://community.chocolatey.org/packages/tesseract
    Ответ написан
    9 комментариев
  • Информационная безопасность в облачных сервисах?

    1. Облачный сервис (ОС) заботится о периметре безопасности к инфраструктуре и о разграничении доступа к ресурсам клиента в меру своих возможностей. Так же предоставляет инструменты для создания внутри-корпоративных политик доступа. А внутренняя кухня клиента - не дело ОС.
    ОС обязан проводить тестирование безопасности, чтобы соответствовать отраслевым стандартам и другим регуляциям.
    2. Из-за необходимости соответствия ОС стандартам безопасности это снимает ощутимую нагрузку с клиента. Но клиент всё равно должен проводить свои проверки безопасности, в своем периметре: доступ к документам, разграничение доступа к приложениям извне и внутри организации. Если не доверяешь ОС - не работай с ним. Для параноиков всегда найдутся какие-то причины волноваться. ИБ не бывает безупречной и не дает 100% защиты. Но чем больше вкладывается в ИБ, тем меньше простора для ее нарушений.
    3. ОС должен соблюдать юрисдикцию и отраслевые регуляции той страны, где находится. Если не находится под санкциями, то не заинтересован в том, чтобы ставить палки в колеса своим клиентам.
    Ответ написан
  • Существует бесплатная OCR-программа с поддержкой якутского языка?

    Более 10 лет назад игрался с фреймворком Гамера. https://qna.habr.com/answer?answer_id=1624737#answ...
    Можно построить систему на основе этого фреймворка, которую можно обучить на образцах символов.
    https://gamera.informatik.hsnr.de/download/index.html
    https://jhir.library.jhu.edu/items/1af7abec-885d-4...

    Если есть готовое свободное ПО, то буду рад узнать так же.
    Ответ написан
    Комментировать
  • Docker-контейнеры для Linux c GUI на PyQt не работают под Windows?

    Один образ собирать для Linux, а другой для Windows, разве не так?

    Начинаю приходить к следующему выводу: если есть проект с графическим интерфейсом, собранный в контейнер под Linux, то он и не обязан запускаться на компьютере, на котором установлена Windows.
    Верно. И не просто "не обязан", а попросту не будет.

    Docker под разными платформами работает по-разному. Но на одной платформе не имеет значения какой образ запускается, кроме лишь для какой платформы предназначен. Это означает аппаратную архитектуру процессора и ОС.
    Ответ написан
  • Как сделать автоматическое версионирование в GitLab, GitHub и т.п.?

    Я думаю, что можно это сделать при помощи Git Post-Merge Hook или с GitHub actions.
    Ответ написан
  • Веб-приложение на Django и фоновый процесс обработки данных, как сделать?

    2) Создать отдельное приложение, которые будет проводить контроль, результаты выкидывать в БД, а уже Django приложение будет при выполнении запроса передавать на сайт информацию с БД

    Можно при помощи отдельного приложения периодически опрашивать датчики и отправлять результаты в какую-нибудь внешнюю систему мониторинга или СУБД временных серий. На Джанго можно только показывать графики с TSDB / системы мониторинга. Роль оповещения могут взять на себя как Джанго, так и внешние средства.

    Использовать Celery - по необходимости, если есть нужда в фоновой обработке задач.
    Ответ написан
    Комментировать