Skip to content

Releases: quack-ai/companion

v0.1.0

15 May 12:10
efbadf8
Compare
Choose a tag to compare

This first release adds a full fledged API for coding assistants while curating team insights, built on top of FastAPI, Ollama, Gradio & Mintlify.

Note: Companion 0.1.0 requires a NVIDIA GPU with 6Gb of VRAM to run it.

Highlights

Local & private code chat

Using your LLM running locally thanks to Ollama 🦙, you can get your coding companion in a chat interface 🦆

Code chat demo

Back-end API

REST API for guideline curation and coding assistant powered by LLM:

API Swagger screenshot

You can use the cloud version in a very similar fashion:

curl --request POST \
  --url https://api.quackai.com/api/v1/code/chat \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
  "messages": [
    {
      "role": "user",
      "content": "<string>"
    }
  ]
}'

Developer community

Whether you're a user of the Cloud version or a developer, you can check our documentation.

Quack Companion documentation

Also, you can join our Discord to get in touch 🦆

What's Changed

Breaking Changes 🛠

  • refactor: Moved guideline fetching and updated scope requirements by @frgfm in #6
  • refactor: Turns the "removed_at" column of repos into a boolean "is_active" column by @frgfm in #29
  • feat(code): switch fully to ollama as LLM provider by @frgfm in #101
  • refactor(models): simplify data model by @frgfm in #107
  • fix(migrations): clean the alembic migrations & scratch revisions by @frgfm in #145

New Features ✨

  • feat: Adds FastAPI to handle tables users, repos and guidelines by @frgfm in #2
  • feat: Adds a route to update the guideline order of a given repo by @frgfm in #3
  • feat: Adds GitHub code & token request routes by @frgfm in #4
  • feat: Adds product analytics PostHog by @frgfm in #5
  • ci: Adds docker build & push by @frgfm in #14
  • test: Adds basic test suite for the project by @frgfm in #16
  • ci: Adds CI job to autodeploy docker by @frgfm in #17
  • test: Adds test suite for first endpoints by @frgfm in #19
  • feat: Adds compute route using OpenAI API by @frgfm in #21
  • feat: Updates route permissions & telemetry by @frgfm in #22
  • test: Adds unittests for all routes but compute by @frgfm in #26
  • feat: Updates OpenAI interactions and adds tests by @frgfm in #28
  • ci: Adds check of deployment by @frgfm in #30
  • feat: Adds route for repo waitlist by @frgfm in #34
  • feat: Adds guideline extraction & validation routes by @frgfm in #35
  • feat: Adds docker & client for Ollama (preview) by @frgfm in #42
  • feat: Adds proper APM using Prometheus and Grafana by @frgfm in #52
  • ci: Adds dependabot update configuration by @frgfm in #56
  • ci(github): add jobs to verify PR labels and title by @frgfm in #74
  • feat(code): add multi-turn chat capabilities by @frgfm in #103
  • feat(login): add token validation route by @frgfm in #115
  • feat(code): embed guidelines in the code chat by @frgfm in #122
  • feat(demo): add a Gradio demo for the code chat by @frgfm in #124
  • ci(github): add package publish to ghcr by @frgfm in #135
  • docs(mintlify): move the documentation to the companion repo by @frgfm in #141
  • feat(demo): add analytics to Gradio demo by @frgfm in #144
  • feat(auth): add Supabase auth utils & clean JWT by @frgfm in #154
  • feat(llm): enable the choice of LLM provider by @frgfm in #157
  • feat(llm): add alternative support of OpenAI API by @frgfm in #163

Bug Fixes 🐛

  • ci(github): pin the ssh action version by @frgfm in #76
  • fix(login): revert provider user ID format by @frgfm in #112
  • fix(dependencies): handle cases where the token isn't JWT compliant by @frgfm in #123
  • fix(docker): fix the position of the traefik service in the prod docker compose by @frgfm in #142

Dependencies

  • build(deps-dev): Bump gitpython from 3.1.32 to 3.1.34 by @dependabot in #7
  • build(deps-dev): Bump gitpython from 3.1.34 to 3.1.35 by @dependabot in #8
  • build(deps): Bump urllib3 from 2.0.4 to 2.0.6 by @dependabot in #10
  • build(deps): Bump urllib3 from 2.0.6 to 2.0.7 by @dependabot in #12
  • ci: Bumps poetry from 1.6.1 to 1.7.1 by @frgfm in #68
  • ci: Updates dependabot frequency by @frgfm in #69
  • build(deps): Bump the gh-actions group with 6 updates by @dependabot in #57
  • build(deps-dev): Bump pytest from 7.4.3 to 8.0.0 by @dependabot in #64
  • build(deps-dev): bump ruff from 0.1.9 to 0.1.14 by @dependabot in #60
  • build(deps-dev): bump pytest-asyncio from 0.21.1 to 0.23.4 by @dependabot in #75
  • build(deps-dev): bump pre-commit from 2.21.0 to 3.6.0 by @dependabot in #80
  • build(deps-dev): bump ruff from 0.1.14 to 0.2.0 by @dependabot in #85
  • build(deps-dev): bump ruff to 0.2.2 by @frgfm in #91
  • build(deps): bump fastapi to 0.110.0 by @frgfm in #108
  • build(deps): bump sqlmodel to 0.0.16 by @frgfm in #109
  • build(deps): bump pydantic to 2.6.2 by @frgfm in #110
  • build(deps-dev): bump ruff from 0.2.2 to 0.3.0 by @dependabot in #111
  • build(deps-dev): bump mypy from 1.8.0 to 1.9.0 by @dependabot in #118
  • build(deps-dev): bump ruff from 0.3.0 to 0.3.2 by @dependabot in #119
  • build(deps): bump the gh-actions group with 1 update by @dependabot in #87
  • build(deps-dev): bump pytest from 7.4.4 to 8.0.1 by @dependabot in #92
  • build(deps-dev): bump ruff from 0.3.2 to 0.3.3 by @dependabot in #131
  • build(deps-dev): bump ruff from 0.3.3 to 0.3.4 by @dependabot in #133
  • build(deps-dev): bump ruff from 0.3.4 to 0.3.5 by @dependabot in #147
  • build(deps): bump idna & pillow to address security issues by @dependabot in #149
  • build(deps-dev): bump ruff from 0.3.5 to 0.3.7 by @dependabot in #150
  • build(deps-dev): bump ruff from 0.3.7 to 0.4.0 by @dependabot in #151
  • build(deps-dev): bump ruff from 0.4.0 to 0.4.1 by @dependabot in #152
  • build(deps-dev): bump mypy from 1.9.0 to 1.10.0 by @dependabot in #153
  • build(deps-dev): bump ruff from 0.4.1 to 0.4.4 by @dependabot in #160
  • build(deps-dev): bump tqdm from 4.66.2 to 4.66.3 in the pip group by @dependabot in #158
  • build(deps): bump ollama to 0.1.38 by @frgfm in #164

Documentation 📖

  • docs: Adds aGPLv3 license by @frgfm in #1
  • style: Removes bandit & black to switch to ruff by @frgfm in #13
  • refactor: Refactors analytics into telemetry module by @frgfm in #20
  • feat: Adds a safeguard check of permissions for modifications of repos/guidelines by @frgfm in #31
  • refactor: Cleans en vars and setup instructions by @frgfm in #36
  • docs: Updates licens...
Read more