Go to file
boxbeam 8af645bcaf
feat(webserver): Log completion events to database (#1571)
* add user completions draft

* [autofix.ci] apply automated fixes

* feat(db): Create DAO for user completion logging (#1514)

* feat(db): Create DAO for user completion logging

* Apply suggestions

* Remove todo

* Apply suggestions

* test(webserver): Create test for user completions (#1523)

* test(webserver): Create test for user completions

* Utility function to sleep 50ms

* Delete ee/tabby-webserver/src/service/logger.rs

* Update ee/tabby-webserver/src/service/mod.rs

* [autofix.ci] apply automated fixes

* Apply suggestion

* Fix test

* Add test cases for missing or invalid user

* Add test for chat completion event

* Apply suggestions

* feat(webserver): Use db logger for chat completions

* Make webserver non-optional dependency

* Restructure code to not depend on webserver unconditionally

* Move dep back

* Fixes for conflicts

* Change to use IDs instead of emails

* Use db logger for webserver

* Remove bound from EventLogger

* [autofix.ci] apply automated fixes

* Create raw event logger wrapper

* Apply suggestions

* [autofix.ci] apply automated fixes

* Fix event logging

* Apply suggestions

* Make new_event_logger non-public

* Make import feature-gated

* [autofix.ci] apply automated fixes

* Apply suggestion

* Hopefully fix tests

* Apply suggestions

* Fix compile error

---------

Co-authored-by: Meng Zhang <meng@tabbyml.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2024-03-13 00:53:18 +08:00
.github ci: add rocm dockerfile (#1543) 2024-02-26 13:13:40 -08:00
ci test(webserver): add smtp local unittest (#1434) 2024-02-10 23:17:56 -08:00
clients chore(intellij): bump intellij plugin version to 1.4.0. (#1597) 2024-03-02 00:35:03 +08:00
crates feat(webserver): Log completion events to database (#1571) 2024-03-13 00:53:18 +08:00
docker ci: add rocm dockerfile (#1543) 2024-02-26 13:13:40 -08:00
ee feat(webserver): Log completion events to database (#1571) 2024-03-13 00:53:18 +08:00
experimental feat: add an experimental supervisor (#630) 2023-10-27 12:46:08 -07:00
python feat(loadtest): add loadtest tools (#906) 2023-11-28 14:34:00 +08:00
rules feat(webserver): Log completion events to database (#1571) 2024-03-13 00:53:18 +08:00
website docs: add windows installation (#1640) 2024-03-12 20:05:29 +08:00
.dockerignore feat: Add rocm builds and documentation (#1012) 2023-12-13 15:59:04 +08:00
.env refactor(db): Rewrite database code to use sqlx instead of rusqlite (#1340) 2024-02-01 09:38:37 -08:00
.gitattributes chore: exclude ee/tabby-webserver/ui to language stats 2023-11-17 15:50:27 -08:00
.gitignore feat: support use experimental-http device for --chat-model (#1537) 2024-02-25 23:27:39 +00:00
.gitmodules fix(metal): fix metal build of tabby (#1601) 2024-03-01 22:34:31 +00:00
.rustfmt.toml refactor: rust nightly format (#197) 2023-06-05 14:17:07 -07:00
Cargo.lock refactor(db): Implement query_paged_as! macro to construct paginated queries that are still statically checked (#1600) 2024-03-13 00:13:25 +08:00
Cargo.toml refactor(db): Implement query_paged_as! macro to construct paginated queries that are still statically checked (#1600) 2024-03-13 00:13:25 +08:00
CHANGELOG.md fix(webserver): incorrect node limit check on worker register (#1652) 2024-03-10 06:44:57 +00:00
CODE_OF_CONDUCT.md docs: Create CODE_OF_CONDUCT.md (#1228) 2024-01-24 00:18:32 -08:00
codecov.yml chore: update codecov.yml 2024-02-08 13:15:46 -08:00
CONTRIBUTING.md docs: Adjust description of golden tests in CONTRIBUTING.md 2024-02-27 09:52:46 -08:00
LICENSE Update LICENSE 2024-01-10 23:16:11 -08:00
Makefile feat: add tabby-email to build tabby email templates (#1573) 2024-02-28 13:17:37 -08:00
MODEL_SPEC.md docs: Update MODEL_SPEC.md, remove broken link (#1647) 2024-03-08 10:04:10 -08:00
package.json feat(lsp): add example VSCode client for Tabby agent LSP. (#1205) 2024-01-13 08:07:12 -08:00
README.md docs: add codecov to README.md 2024-02-08 00:04:04 -08:00
sgconfig.yml refactor(webserver): ensure only services could rely on tabby_db dire… (#1407) 2024-02-07 19:15:53 +00:00
yarn.lock feat(agent): support load ca cert from os. (#1468) 2024-02-20 20:33:26 -08:00

🐾 Tabby

latest release PRs Welcome Docker pulls codecov

Tabby is a self-hosted AI coding assistant, offering an open-source and on-premises alternative to GitHub Copilot. It boasts several key features:

  • Self-contained, with no need for a DBMS or cloud service.
  • OpenAPI interface, easy to integrate with existing infrastructure (e.g Cloud IDE).
  • Supports consumer-grade GPUs.

Open in Playground

Demo

🔥 What's New

Archived
  • 10/15/2023 RAG-based code completion is enabled by detail in v0.3.0🎉! Check out the blogpost explaining how Tabby utilizes repo-level context to get even smarter!
  • 11/27/2023 v0.6.0 released!
  • 11/09/2023 v0.5.5 released! With a redesign of UI + performance improvement.
  • 10/04/2023 Check out the model directory for the latest models supported by Tabby.
  • 09/18/2023 Apple's M1/M2 Metal inference support has landed in v0.1.1!
  • 08/31/2023 Tabby's first stable release v0.0.1 🥳.
  • 08/28/2023 Experimental support for the CodeLlama 7B.
  • 08/24/2023 Tabby is now on JetBrains Marketplace!

👋 Getting Started

You can find our documentation here.

Run Tabby in 1 Minute

The easiest way to start a Tabby server is by using the following Docker command:

docker run -it \
  --gpus all -p 8080:8080 -v $HOME/.tabby:/data \
  tabbyml/tabby \
  serve --model TabbyML/StarCoder-1B --device cuda

For additional options (e.g inference type, parallelism), please refer to the documentation page.

🤝 Contributing

Full guide at CONTRIBUTING.md;

Get the Code

git clone --recurse-submodules https://github.com/TabbyML/tabby
cd tabby

If you have already cloned the repository, you could run the git submodule update --recursive --init command to fetch all submodules.

Build

  1. Set up the Rust environment by following this tutorial.

  2. Install the required dependencies:

# For MacOS
brew install protobuf

# For Ubuntu / Debian
apt-get install protobuf-compiler libopenblas-dev
  1. Now, you can build Tabby by running the command cargo build.

Start Hacking!

... and don't forget to submit a Pull Request

🌍 Community

  • 🎤 Twitter / X - engage with TabbyML for all things possible
  • 📚 LinkedIn - follow for the latest from the community
  • 💌 Newsletter - subscribe to unlock Tabby insights and secrets

🌟 Star History

Star History Chart