chore: release 0.5.0 (#697)
* Release 0.5.0-rc.0 http-api-bindings@0.5.0-rc.0 llama-cpp-bindings@0.5.0-rc.0 tabby@0.5.0-rc.0 tabby-common@0.5.0-rc.0 tabby-download@0.5.0-rc.0 tabby-inference@0.5.0-rc.0 tabby-scheduler@0.5.0-rc.0 Generated by cargo-workspaces * fix: docker branch tag should only generate when not empty * Release 0.5.0-rc.1 http-api-bindings@0.5.0-rc.1 llama-cpp-bindings@0.5.0-rc.1 tabby@0.5.0-rc.1 tabby-common@0.5.0-rc.1 tabby-download@0.5.0-rc.1 tabby-inference@0.5.0-rc.1 tabby-scheduler@0.5.0-rc.1 Generated by cargo-workspaces * fix: handlebar syntax in meta action * Release 0.5.0-rc.2 http-api-bindings@0.5.0-rc.2 llama-cpp-bindings@0.5.0-rc.2 tabby@0.5.0-rc.2 tabby-common@0.5.0-rc.2 tabby-download@0.5.0-rc.2 tabby-inference@0.5.0-rc.2 tabby-scheduler@0.5.0-rc.2 Generated by cargo-workspaces * fix: handlebar syntax in meta action * Release 0.5.0-rc.3 http-api-bindings@0.5.0-rc.3 llama-cpp-bindings@0.5.0-rc.3 tabby@0.5.0-rc.3 tabby-common@0.5.0-rc.3 tabby-download@0.5.0-rc.3 tabby-inference@0.5.0-rc.3 tabby-scheduler@0.5.0-rc.3 Generated by cargo-workspaces * docs: update change log and docs * fix: collect_snippet should handle NotReady error * Release 0.5.0-rc.4 http-api-bindings@0.5.0-rc.4 llama-cpp-bindings@0.5.0-rc.4 tabby@0.5.0-rc.4 tabby-common@0.5.0-rc.4 tabby-download@0.5.0-rc.4 tabby-inference@0.5.0-rc.4 tabby-scheduler@0.5.0-rc.4 Generated by cargo-workspaces * Release 0.5.0 http-api-bindings@0.5.0 llama-cpp-bindings@0.5.0 tabby@0.5.0 tabby-common@0.5.0 tabby-download@0.5.0 tabby-inference@0.5.0 tabby-scheduler@0.5.0 Generated by cargo-workspaceswsxiaoys-patch-2
parent
a3123cd7d0
commit
ec8d88de0d
|
|
@ -83,7 +83,7 @@ jobs:
|
||||||
${{ env.IMAGE_NAME }}
|
${{ env.IMAGE_NAME }}
|
||||||
# generate Docker tags based on the following events/attributes
|
# generate Docker tags based on the following events/attributes
|
||||||
tags: |
|
tags: |
|
||||||
type=raw,value={{branch}}-{{sha}},enable={{#if branch}}true{{else}}false{{/if}}
|
type=raw,value={{branch}}-{{sha}},enable=${{ startsWith(github.ref, 'refs/heads') }}
|
||||||
type=schedule,pattern=nightly
|
type=schedule,pattern=nightly
|
||||||
type=schedule,pattern={{date 'YYYYMMDD'}}
|
type=schedule,pattern={{date 'YYYYMMDD'}}
|
||||||
type=semver,pattern={{version}}
|
type=semver,pattern={{version}}
|
||||||
|
|
|
||||||
24
CHANGELOG.md
24
CHANGELOG.md
|
|
@ -1,17 +1,25 @@
|
||||||
# v0.5.0 [Unreleased]
|
# v0.6.0 [Unreleased]
|
||||||
|
|
||||||
## Notice
|
|
||||||
* llama.cpp backend (CPU, Metal) now requires a redownload of gguf model due to upstream format changes: https://github.com/TabbyML/tabby/pull/645 https://github.com/ggerganov/llama.cpp/pull/3252
|
|
||||||
* Due to indexing format changes, the `~/.tabby/index` needs to be manually removed before any further runs of `tabby scheduler`.
|
|
||||||
|
|
||||||
## Features
|
## Features
|
||||||
|
|
||||||
|
# v0.5.0
|
||||||
|
|
||||||
|
## Notice
|
||||||
|
|
||||||
|
* llama.cpp backend (CPU, Metal) now requires a redownload of gguf model due to upstream format changes: https://github.com/TabbyML/tabby/pull/645 https://github.com/ggerganov/llama.cpp/pull/3252
|
||||||
|
* Due to indexing format changes, the `~/.tabby/index` needs to be manually removed before any further runs of `tabby scheduler`.
|
||||||
|
* `TABBY_REGISTRY` is replaced with `TABBY_DOWNLOAD_HOST` for the github based registry implementation.
|
||||||
|
|
||||||
|
## Features
|
||||||
|
|
||||||
|
* Improved dashboard UI.
|
||||||
|
|
||||||
## Fixes and Improvements
|
## Fixes and Improvements
|
||||||
|
|
||||||
* Switch cpu backend to llama.cpp: https://github.com/TabbyML/tabby/pull/638
|
* Cpu backend is switched to llama.cpp: https://github.com/TabbyML/tabby/pull/638
|
||||||
* add `server.completion_timeout` to control the code completion interface timeout: https://github.com/TabbyML/tabby/pull/637
|
* add `server.completion_timeout` to control the code completion interface timeout: https://github.com/TabbyML/tabby/pull/637
|
||||||
* Switch cuda backend to llama.cpp: https://github.com/TabbyML/tabby/pull/656
|
* Cuda backend is switched to llama.cpp: https://github.com/TabbyML/tabby/pull/656
|
||||||
* Switch tokenizer to llama.cpp, so tabby no longer need to download additional tokenizer file: https://github.com/TabbyML/tabby/pull/683
|
* Tokenizer implementation is switched to llama.cpp, so tabby no longer need to download additional tokenizer file: https://github.com/TabbyML/tabby/pull/683
|
||||||
|
|
||||||
# v0.4.0
|
# v0.4.0
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1176,7 +1176,7 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "http-api-bindings"
|
name = "http-api-bindings"
|
||||||
version = "0.5.0-dev"
|
version = "0.5.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"async-trait",
|
"async-trait",
|
||||||
"futures",
|
"futures",
|
||||||
|
|
@ -1489,7 +1489,7 @@ checksum = "3852614a3bd9ca9804678ba6be5e3b8ce76dfc902cae004e3e0c44051b6e88db"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "llama-cpp-bindings"
|
name = "llama-cpp-bindings"
|
||||||
version = "0.5.0-dev"
|
version = "0.5.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"async-stream",
|
"async-stream",
|
||||||
"async-trait",
|
"async-trait",
|
||||||
|
|
@ -2823,7 +2823,7 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "tabby"
|
name = "tabby"
|
||||||
version = "0.5.0-dev"
|
version = "0.5.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"assert-json-diff",
|
"assert-json-diff",
|
||||||
|
|
@ -2872,7 +2872,7 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "tabby-common"
|
name = "tabby-common"
|
||||||
version = "0.5.0-dev"
|
version = "0.5.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"chrono",
|
"chrono",
|
||||||
|
|
@ -2889,7 +2889,7 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "tabby-download"
|
name = "tabby-download"
|
||||||
version = "0.5.0-dev"
|
version = "0.5.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"async-trait",
|
"async-trait",
|
||||||
|
|
@ -2909,7 +2909,7 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "tabby-inference"
|
name = "tabby-inference"
|
||||||
version = "0.5.0-dev"
|
version = "0.5.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"async-stream",
|
"async-stream",
|
||||||
"async-trait",
|
"async-trait",
|
||||||
|
|
@ -2922,7 +2922,7 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "tabby-scheduler"
|
name = "tabby-scheduler"
|
||||||
version = "0.5.0-dev"
|
version = "0.5.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"file-rotate",
|
"file-rotate",
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@ members = [
|
||||||
]
|
]
|
||||||
|
|
||||||
[workspace.package]
|
[workspace.package]
|
||||||
version = "0.5.0-dev"
|
version = "0.5.0"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
authors = ["Meng Zhang"]
|
authors = ["Meng Zhang"]
|
||||||
homepage = "https://github.com/TabbyML/tabby"
|
homepage = "https://github.com/TabbyML/tabby"
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
[package]
|
[package]
|
||||||
name = "http-api-bindings"
|
name = "http-api-bindings"
|
||||||
version = "0.5.0-dev"
|
version = "0.5.0"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
[package]
|
[package]
|
||||||
name = "llama-cpp-bindings"
|
name = "llama-cpp-bindings"
|
||||||
version = "0.5.0-dev"
|
version = "0.5.0"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
[package]
|
[package]
|
||||||
name = "tabby-common"
|
name = "tabby-common"
|
||||||
version = "0.5.0-dev"
|
version = "0.5.0"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
[package]
|
[package]
|
||||||
name = "tabby-download"
|
name = "tabby-download"
|
||||||
version = "0.5.0-dev"
|
version = "0.5.0"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
[package]
|
[package]
|
||||||
name = "tabby-inference"
|
name = "tabby-inference"
|
||||||
version = "0.5.0-dev"
|
version = "0.5.0"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
|
|
||||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
[package]
|
[package]
|
||||||
name = "tabby-scheduler"
|
name = "tabby-scheduler"
|
||||||
version = "0.5.0-dev"
|
version = "0.5.0"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
|
|
||||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
[package]
|
[package]
|
||||||
name = "tabby"
|
name = "tabby"
|
||||||
version = "0.5.0-dev"
|
version = "0.5.0"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
|
|
|
||||||
|
|
@ -109,8 +109,12 @@ fn collect_snippets(index_server: &IndexServer, language: &str, text: &str) -> V
|
||||||
let mut ret = Vec::new();
|
let mut ret = Vec::new();
|
||||||
let mut tokens = tokenize_text(text);
|
let mut tokens = tokenize_text(text);
|
||||||
|
|
||||||
let language_query = index_server.language_query(language).unwrap();
|
let Ok(language_query) = index_server.language_query(language) else {
|
||||||
let body_query = index_server.body_query(&tokens).unwrap();
|
return vec![];
|
||||||
|
};
|
||||||
|
let Ok(body_query) = index_server.body_query(&tokens) else {
|
||||||
|
return vec![];
|
||||||
|
};
|
||||||
let query = BooleanQuery::new(vec | [Llama2](https://github.com/facebookresearch/llama/blob/main/LICENSE) | ✅ |
|
|
||||||
| [TabbyML/CodeLlama-7B](https://huggingface.co/TabbyML/CodeLlama-7B) | [Llama2](https://github.com/facebookresearch/llama/blob/main/LICENSE) | ✅ |
|
|
||||||
| [TabbyML/StarCoder-7B](https://huggingface.co/TabbyML/StarCoder-7B) | [BigCode-OpenRAIL-M](https://huggingface.co/spaces/bigcode/bigcode-model-license-agreement) | ✅ |
|
|
||||||
| [TabbyML/StarCoder-3B](https://huggingface.co/TabbyML/StarCoder-3B) | [BigCode-OpenRAIL-M](https://huggingface.co/spaces/bigcode/bigcode-model-license-agreement) | ✅ |
|
|
||||||
| [TabbyML/StarCoder-1B](https://huggingface.co/TabbyML/StarCoder-1B) | [BigCode-OpenRAIL-M](https://huggingface.co/spaces/bigcode/bigcode-model-license-agreement) | ✅ |
|
|
||||||
|
|
||||||
## Chat models (`--chat-model`)
|
|
||||||
|
|
||||||
To ensure optimal response quality, and given that latency requirements are not stringent in this scenario, we recommend using a model with at least 3B parameters.
|
|
||||||
|
|
||||||
| Model ID | License |
|
|
||||||
| ----------------------------------------------------------------------- | :---------------------------------------------------------------------------------: |
|
|
||||||
| [TabbyML/Mistral-7B](https://huggingface.co/TabbyML/Mistral-7B) | [Apache 2.0](https://opensource.org/licenses/Apache-2.0) |
|
|
||||||
| [TabbyML/WizardCoder-3B](https://huggingface.co/TabbyML/WizardCoder-3B) | [OpenRAIL-M](https://huggingface.co/spaces/bigcode/bigcode-model-license-agreement) |
|
|
||||||
|
|
||||||
## Alternative Registry
|
|
||||||
|
|
||||||
By default, Tabby utilizes the [Hugging Face organization](https://huggingface.co/TabbyML) as its model registry. Mainland Chinese users have encountered challenges accessing Hugging Face for various reasons. The Tabby team has established a mirrored at [modelscope](https://www.modelscope.cn/organization/TabbyML), which can be utilized using the following environment variable:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
TABBY_REGISTRY=modelscope tabby serve --model TabbyML/StarCoder-1B
|
|
||||||
```
|
|
||||||
|
|
@ -0,0 +1,18 @@
|
||||||
|
---
|
||||||
|
sidebar_position: 4
|
||||||
|
hide_table_of_contents: true
|
||||||
|
---
|
||||||
|
|
||||||
|
import GitHubReadme from "./readme";
|
||||||
|
|
||||||
|
# 🧑🔬 Models Registry
|
||||||
|
|
||||||
|
<GitHubReadme src="https://raw.githubusercontent.com/TabbyML/registry-tabby/main/README.md" />
|
||||||
|
|
||||||
|
## Model Mirrors
|
||||||
|
|
||||||
|
Mainland Chinese users might encounter challenges accessing Hugging Face. For models with mirrored to modelscope, you could download model by utilizing following environment variable:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
TABBY_DOWNLOAD_HOST=modelscope.cn tabby serve --model TabbyML/StarCoder-1B
|
||||||
|
```
|
||||||
|
|
@ -0,0 +1,74 @@
|
||||||
|
import React, { useState, useEffect } from "react";
|
||||||
|
import { marked } from "marked";
|
||||||
|
|
||||||
|
const GitHubReadme: React.FC<{
|
||||||
|
src?: string;
|
||||||
|
}> = ({
|
||||||
|
src,
|
||||||
|
}) => {
|
||||||
|
if (!src) {
|
||||||
|
console.error(
|
||||||
|
"react-github-readme-md: You must provide either a src or username and repo"
|
||||||
|
);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
const [readmeContent, setReadmeContent] = useState<string>("");
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
// Function to fetch the README content from GitHub
|
||||||
|
const fetchReadme = async () => {
|
||||||
|
try {
|
||||||
|
let readmeUrl = "";
|
||||||
|
|
||||||
|
if (src) {
|
||||||
|
// Allow passing a URL directly as a prop
|
||||||
|
readmeUrl = src;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!readmeUrl) {
|
||||||
|
throw new Error("Failed to fetch README path");
|
||||||
|
}
|
||||||
|
|
||||||
|
const response = await fetch(readmeUrl);
|
||||||
|
|
||||||
|
if (!response.ok) {
|
||||||
|
throw new Error("Failed to fetch README");
|
||||||
|
}
|
||||||
|
|
||||||
|
const data = await response.text();
|
||||||
|
|
||||||
|
if (data) {
|
||||||
|
setReadmeContent(data.split("\n").splice(1).join("\n"));
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
console.error("react-github-readme-md: ", error);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
fetchReadme();
|
||||||
|
}, []);
|
||||||
|
|
||||||
|
if (!readmeContent) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Parse the markdown content into HTML
|
||||||
|
try {
|
||||||
|
const ghContent = marked.parse(readmeContent);
|
||||||
|
return (
|
||||||
|
<div>
|
||||||
|
<div
|
||||||
|
dangerouslySetInnerHTML={{
|
||||||
|
__html: ghContent,
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
} catch (error) {
|
||||||
|
console.error("react-github-readme-md: ", error);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
export default GitHubReadme;
|
||||||
|
|
@ -22,6 +22,7 @@
|
||||||
"axios": "^1.4.0",
|
"axios": "^1.4.0",
|
||||||
"clsx": "^1.2.1",
|
"clsx": "^1.2.1",
|
||||||
"docusaurus-preset-openapi": "^0.6.4",
|
"docusaurus-preset-openapi": "^0.6.4",
|
||||||
|
"marked": "^9.1.5",
|
||||||
"postcss": "^8.4.24",
|
"postcss": "^8.4.24",
|
||||||
"posthog-docusaurus": "^2.0.0",
|
"posthog-docusaurus": "^2.0.0",
|
||||||
"prism-react-renderer": "^1.3.5",
|
"prism-react-renderer": "^1.3.5",
|
||||||
|
|
|
||||||
|
|
@ -5559,6 +5559,11 @@ marked@2.0.1:
|
||||||
resolved "https://registry.yarnpkg.com/marked/-/marked-2.0.1.tgz#5e7ed7009bfa5c95182e4eb696f85e948cefcee3"
|
resolved "https://registry.yarnpkg.com/marked/-/marked-2.0.1.tgz#5e7ed7009bfa5c95182e4eb696f85e948cefcee3"
|
||||||
integrity sha512-5+/fKgMv2hARmMW7DOpykr2iLhl0NgjyELk5yn92iE7z8Se1IS9n3UsFm86hFXIkvMBmVxki8+ckcpjBeyo/hw==
|
integrity sha512-5+/fKgMv2hARmMW7DOpykr2iLhl0NgjyELk5yn92iE7z8Se1IS9n3UsFm86hFXIkvMBmVxki8+ckcpjBeyo/hw==
|
||||||
|
|
||||||
|
marked@^9.1.5:
|
||||||
|
version "9.1.5"
|
||||||
|
resolved "https://registry.yarnpkg.com/marked/-/marked-9.1.5.tgz#fcada4702ea64a5c05a4ff0e0639628aac8a1e5f"
|
||||||
|
integrity sha512-14QG3shv8Kg/xc0Yh6TNkMj90wXH9mmldi5941I2OevfJ/FQAFLEwtwU2/FfgSAOMlWHrEukWSGQf8MiVYNG2A==
|
||||||
|
|
||||||
mdast-squeeze-paragraphs@^4.0.0:
|
mdast-squeeze-paragraphs@^4.0.0:
|
||||||
version "4.0.0"
|
version "4.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/mdast-squeeze-paragraphs/-/mdast-squeeze-paragraphs-4.0.0.tgz#7c4c114679c3bee27ef10b58e2e015be79f1ef97"
|
resolved "https://registry.yarnpkg.com/mdast-squeeze-paragraphs/-/mdast-squeeze-paragraphs-4.0.0.tgz#7c4c114679c3bee27ef10b58e2e015be79f1ef97"
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue