Skip to content

jarmatys/DEV_ASSISTENTE

Repository files navigation

🤖 ASSISTENTE.DEV - Your Coding Companion

🔗 QUICK LINKS: APP Demo 🆕 | Website | Nuget


🐳 DOCKER IMAGES: UI | API | WORKER | DB UPGRADER | PLAYGROUND


GitHub GitHub Workflow Status Nuget Nuget GitHub issues GitHub pull requests


banner


Struggling to keep track of all your dev notes, bookmarks, and useful code snippets scattered across different platforms? Frustrated by the time wasted searching for that crucial information or starting from scratch? 🤔

Introducing assistente.dev – your ultimate assistant for developers. It's your personal memory bank, effortlessly storing and retrieving everything you need, precisely when you need it. Whether it's code snippets, course notes, or example solutions, Assistende has you covered. 🦾

Simply paste your query and watch as assistente.dev draws from your notes, bookmarks, and code bases to provide the perfect solution. With assistente.dev, say goodbye to wasted time and hello to seamless development. Get started and unlock your productivity potential! 🚀

assistente-preview


Answer generation flow:

answer-generation-flow


YouTube Video Explainer

Assistente Video Explainer


Roadmap

Phases:

  • ✅ I phase (POC) - console app for test purpose Playground: QUICK LINK
  • ✅ II phase - UI in Blazor
  • ✅ III phase - Request limitation (throttling) + publish application on VPS - URL
  • 🔳 IV phase - Improve prompts and logic to generate the most accurate answers

Loading user data

TODO:

  • ✅ Loading and parsing *.md files - knowledge base
  • ✅ Loading and parsing *.cs files - code base
  • ✅ Find open source solution for creating embeddins
    • ✅ Done partially (currently in use OpenAI embedding service)
    • 🔳 NICE TO HAVE Integrate LLamaSharp for embeding creation
  • ✅ Integration with Qdrant - saving embeddings

Generating results

  • ✅ Generating prompt based on the 'knowledge base' & 'code base'
    • ✅ Generate prompt based on 'knowledge base'
    • ✅ Generate prompt based on 'code base'
  • ✅ Integration with the OpenAI API
  • ✅ Add usage of MediatR and prepare Command & Queries libraries
  • ✅ Generating answers or ready code (in console app) - depending on what the user needs
  • ✅ Add UI in Blazor
    • ✅ Upload sample notes and code from DEV_ASSISTENTE repository for demo purpose
    • ✅ Generating answers asynchronously (RabbitMQ + SignalR)
    • ✅ Display resources list
    • ✅ Display asked questions with answers list
  • ✅ Switch from MSSQL to PostgreSQL
  • ✅ Configure VPS to host all environment
  • ✅ Add support for separated scenario for CODE generation
    • ✅ Add table QuestionFiles to save information about select files based on question

Common tasks

  • ✅ Prepare configuration section in Readme
  • ✅ Prepare quick start section in Readme
  • ✅ Prepare video explainer with simply demo
  • ✅ Add HealthChecks for API & Worker

Configuration

  1. Fill out the settings file appsettings.json - QUICK LINK

    • OpenAI_ApiKey - <API_KEY>
  2. Fill out the .env file - QUICK LINK

    • OpenAI_ApiKey - <API_KEY>

Quick start

Prerequisites: Docker

  1. Fill out the settings file (appsettings.json) and (.env) from CONFIGURATION section

  2. Run start-enviroment.ps1 script with parameters:

    • Firstly with -s - to start required services
    • Secondly with -d - to upgrade and migrate database
    • Thirdly with -a - to start assistente application
    • Fourthly with -p - to learn assistente
  3. Voila! Currently you can go to https://localhost:1008

Services

Service Port Information Metrics URL
PostreSQL 1000 Database -
PgAdmin 1001 Database UI -
Qdrant 1002 API & UI (dashboard) /metrics
Qdrant 1003 Search Engine -
RabbitMq 1004 AMPQ Connection -
RabbitMq 1005 RabbitMq UI -
RabbitMq 1013 RabbitMq Metrics /metrics
Seq 1006 UI -
Seq 1007 Logs API -
Blazor UI 1008 Assistente UI -
Internal API 1009 Assistente API /metrics
Worker 1010 Assistente worker /metrics
Jaeger 1011 OpenTelemetry Collector -
Jaeger 1012 UI -
Jaeger 1014 API /metrics