Skip to content

πŸ€– Assistant for developers. It's your personal memory bank, effortlessly storing and retrieving everything you need, precisely when you need it.

License

Notifications You must be signed in to change notification settings

jarmatys/DEV_ASSISTENTE

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

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)
  • βœ… 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

Roadmap

  • πŸ”³ Configure OTEL collector: TUTORIAL
    • πŸ”³ Metrics integration with Prometheus and Graphana - TUTORIAL
    • πŸ”³ Traces integration with SEQ (Jaeger shoud be replaces with SEQ)
  • πŸ”³ Integrate LLamaSharp for embeding creation
  • πŸ”³ Save all content from the file (C# code) and use it at the end of the process in context instead of snippets.
  • πŸ”³ Add Tool which can search in Google (will be use as OpenAi function) + whitelisted resource domains
  • πŸ”³ Saving (to knowledge base) and analyzing tech newsletters

Configuration

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

    • Llm_ApiKey - <API_KEY>

    • Llm_OrganizationId - <ORG_ID>

    • Llm_ProjectId - <PROJ_ID>

    • Embeddings_ApiKey - <API_KEY>

    • Embeddings_OrganizationId - <ORG_ID>

    • Embeddings_ProjectId - <PROJ_ID>

  2. Fill out the .env file - QUICK LINK

    • OpenAi_ApiKey - <API_KEY>
    • OpenAi_OrganizationId - <ORG_ID>
    • OpenAi_ProjectId - <PROJ_ID>

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 Access
PostreSQL 1000 Database - -
PgAdmin 1001 Database UI - L: admin@assistente.dev, P: admin
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 -

About

πŸ€– Assistant for developers. It's your personal memory bank, effortlessly storing and retrieving everything you need, precisely when you need it.

Topics

Resources

License

Stars

Watchers

Forks

Languages