PageSourceSearch

https://tabby.tabbyml.com/assets/js/a0398f94.2bb5e7c6.js

js tabbyml.com collected 2026-10-02 05:52:18 UTC 6,155 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[1457],{9541:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>s,default:()=>u,frontMatter:()=>r,metadata:()=>i,toc:()=>d});var o=t(74848),a=t(28453);const r={authors:["meng","gyxlucy"],tags:["release"],slug:"/2023/10/14/seed-round-release-0-3-0"},s="Announcing our $3.2M seed round, and the long-awaited RAG release in Tabby v0.3.0",i={permalink:"/blog/2023/10/14/seed-round-release-0-3-0",editUrl:"https://github.com/TabbyML/tabby/edit/main/website/blog/2023-10-14-seed-round-release-0-3-0-RAG.md",source:"@site/blog/2023-10-14-seed-round-release-0-3-0-RAG.md",title:"Announcing our $3.2M seed round, and the long-awaited RAG release in Tabby v0.3.0",description:"We are excited to announce that TabbyML has raised a $3.2M seed round to move towards our goal of building an open ecosystem to supercharge developer experience with LLM \ud83c\udf89\ud83c\udf89\ud83c\udf89.",date:"2023-10-14T00:00:00.000Z",tags:[{label:"release",permalink:"/blog/tags/release"}],readingTime:1.59,hasTruncateMarker:!1,authors:[{name:"Meng Zhang",url:"https://github.com/wsxiaoys",imageURL:"https://github.com/wsxiaoys.png",key:"meng"},{name:"Lucy Gao",url:"https://github.com/gyxlucy",imageURL:"https://github.com/gyxlucy.png",key:"gyxlucy"}],frontMatter:{authors:["meng","gyxlucy"],tags:["release"],slug:"/2023/10/14/seed-round-release-0-3-0"},unlisted:!1,prevItem:{title:"Repository context for LLM assisted code completion",permalink:"/blog/2023/10/16/repository-context-for-code-completion"},nextItem:{title:"Stream laziness in Tabby",permalink:"/blog/2023/09/30/stream-laziness-in-tabby"}},l={authorsImageUrls:[void 0,void 0]},d=[{value:"Why Tabby \ud83d\udc3e ?",id:"why-tabby--",level:2},{value:"Release v0.3.0 - Retrieval Augmented Code Completion \ud83c\udf81",id:"release-v030---retrieval-augmented-code-completion-",level:2}];function c(e){const n={a:"a",code:"code",em:"em",h2:"h2",p:"p",pre:"pre",strong:"strong",...(0,a.R)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(n.p,{children:["We are excited to announce that TabbyML has raised a ",(0,o.jsx)(n.a,{href:"https://techcrunch.com/2023/10/10/tabbyml-github-copilot-alternative-raises-3-2-million/",children:"$3.2M seed round"})," to move towards our goal of building an open ecosystem to supercharge developer experience with LLM \ud83c\udf89\ud83c\udf89\ud83c\udf89."]}),"\n",(0,o.jsx)(n.h2,{id:"why-tabby--",children:"Why Tabby \ud83d\udc3e ?"}),"\n",(0,o.jsx)(n.p,{children:"With over 10 years coding experience, we recognize the transformative potential of LLMs in reshaping developer toolchains. While many existing products lean heavily on cloud-based end-to-end solutions, we firmly believe that for AI to be genuinely the core of every developer's toolkit, the next-gen LLM-enhanced developer tools should embrace an open ecosystem. This approach promotes not just flexibility for easy customization, but also fortifies security."}),"\n",(0,o.jsx)(n.p,{children:"Today, Tabby stands out as the most popular and user-friendly solution to enable coding assistant experience fully owned by users. Looking ahead, we are poised to delve even further into the developer lifecycle, and innovate across the full spectrum. At TabbyML, developers aren't just participants \u2014 they are at the heart of the LLM revolution."}),"\n",(0,o.jsx)(n.h2,{id:"release-v030---retrieval-augmented-code-completion-",children:"Release v0.3.0 - Retrieval Augmented Code Completion \ud83c\udf81"}),"\n",(0,o.jsxs)(n.p,{children:["Tabby also comes to a ",(0,o.jsx)(n.a,{href:"https://github.com/TabbyML/tabby/releases/tag/v0.3.0",children:"v0.3.0 release"}),", with the support of retrieval-augmented code completion enabled by default. Enhanced by repo-level retrieval, Tabby gets smarter at your codebase and will quickly reference to a related function / code example from another file in your repository."]}),"\n",(0,o.jsx)(n.p,{children:"A blog series detailing the technical designs of retrieval-augmented code completion will be published soon. Stay tuned!\ud83d\udd14"}),"\n",(0,o.jsx)(n.p,{children:(0,o.jsx)(n.em,{children:(0,o.jsx)(n.strong,{children:"Example prompt for retrieval-augmented code completion:"})})}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-rust",children:'// Path: crates/tabby/src/serve/engine.rs\n// fn create_llama_engine(model_dir: &ModelDir) -> Box<dyn TextGeneration> {\n//     let options = llama_cpp_bindings::LlamaEngineOptionsBuilder::default()\n//         .model_path(model_dir.ggml_q8_0_file())\n//         .tokenizer_path(model_dir.tokenizer_file())\n//         .build()\n//         .unwrap();\n//\n//     Box::new(llama_cpp_bindings::LlamaEngine::create(options))\n// }\n//\n// Path: crates/tabby/src/serve/engine.rs\n// create_local_engine(args, &model_dir, &metadata)\n//\n// Path: crates/tabby/src/serve/health.rs\n// args.device.to_string()\n//\n// Path: crates/tabby/src/serve/mod.rs\n// download_model(&args.model, &args.device)\n    } else {\n        create_llama_engine(model_dir)\n    }\n}\n\nfn create_ctranslate2_engine(\n    args: &crate::serve::ServeArgs,\
1n    model_dir: &ModelDir,\n    metadata: &Metadata,\n) -> Box<dyn TextGeneration> {\n    let device = format!("{}", args.device);\n    let options = CTranslate2EngineOptionsBuilder::default()\n        .model_path(model_dir.ctranslate2_dir())\n        .tokenizer_path(model_dir.tokenizer_file())\n        .device(device)\n        .model_type(metadata.auto_model.clone())\n        .device_indices(args.device_indices.clone())\n        .build()\n        .\n'})})]})}function u(e={}){const{wrapper:n}={...(0,a.R)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(c,{...e})}):c(e)}},28453:(e,n,t)=>{t.d(n,{R:()=>s,x:()=>i});var o=t(96540);const a={},r=o.createContext(a);function s(e){const n=o.useContext(r);return o.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:s(e.components),o.createElement(r.Provider,{value:n},e.children)}}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.