Skip to content

Commit df0585d

Browse files
committed
2 parents b690483 + a2da347 commit df0585d

16 files changed

Lines changed: 781 additions & 210 deletions

File tree

.cursorignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
assets/
44
benchmarks/
5-
examples/
5+
# examples/
66
openarc_bench.db
77
openarc.log
88
scratchpad.md

AGENTS.md

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
1-
OpenArc uses bleeding edge libraries and APIs you may not be familair with. When working through a task, use the deepwiki mcp server to get *contextual* information, and the command line to investigate python surfaces.
1+
OpenArc uses bleeding edge libraries and APIs you may not be familair with. When working through a task, use the deepwiki mcp server to get *contextual* information, and the command line to investigate python surfaces. Prefer the command line.
22

33
- When making changes, dont worry about backward compatibility; we use git for this.
44
- Use uv to install dependencies
5-
- Respect existing patterns in the codebase
6-
- When the backend is changed, make sure parameters in the frontend are updated.
7-
- Don't rush, and ask clarifying questions.
5+
- Don't rush, and ask clarifying questions.
6+
- In a prompt `ticks` represent grep targets

CONTRIBUTING.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,29 @@ The goal with this project has been to make using Intel devices as accelerators
55
## Contributing
66

77
- Open an issue before beginning work
8+
- Joining discord before making any issues around contributing is encouraged
89

910
## Guidelines
1011

1112
- Create separate PRs for each feature or fix. Avoid combining unrelated changes in a single PR
1213
- Consider allowing write access to your branch for faster reviews, as reviewers can push commits directly
1314

1415

16+
## Documentation
17+
18+
To build and serve the documentation locally use:
19+
20+
```
21+
zensical serve -a localhost:8004
22+
```
23+
24+
Then you can edit markdown files in `docs/` with updates in real time.
25+
26+
When implementing any changes documentation updates are expected. Keeping docs up to date is an ongoing process.
27+
28+
### Github Actions
29+
30+
When changes are made to any file in `docs/` the live site is rebuilt and deployed automatically, meaning we can change it like code in PRs and on merge the workflow executes.
31+
1532

1633

README.md

Lines changed: 20 additions & 168 deletions
Original file line numberDiff line numberDiff line change
@@ -4,56 +4,47 @@
44
[![Hugging Face](https://img.shields.io/badge/🤗%20Hugging%20Face-Echo9Zulu-yellow)](https://huggingface.co/Echo9Zulu)
55
[![Devices](https://img.shields.io/badge/Devices-CPU%2FGPU%2FNPU-blue)](https://github.com/openvinotoolkit/openvino)
66
[![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/SearchSavior/OpenArc)
7+
[![Docs](https://img.shields.io/badge/📖%20Docs-blue)](https://searchsavior.github.io/OpenArc/)
78

89
> [!NOTE]
910
> OpenArc is under active development.
1011
11-
**OpenArc** is an inference engine for Intel devices. Serve LLMs, VLMs, Whisper, Kokoro-TTS, Qwen-TTS, Qwen-ASR, Embedding and Reranker models over OpenAI compatible endpoints, powered by OpenVINO on your device. Local, private, open source AI.
12+
**OpenArc** is an inference engine for Intel devices.
1213

13-
Drawing on ideas from `llama.cpp`, `vLLM`, `transformers`, `OpenVINO Model Server`, `Ray`, `Lemonade`, and other projects cited below, OpenArc has been a way for me to learn about inference engines by trying to build one myself.
14+
Serve LLMs, VLMs, Whisper, Kokoro-TTS, Qwen-TTS, Qwen-ASR, Embedding and Reranker models over OpenAI compatible endpoints, powered by OpenVINO on your device. Local, private, open source AI.
1415

15-
Along the way a Discord community has formed around this project! If you are interested in using Intel devices for AI and machine learning, feel free to stop by.
16+
Drawing on ideas from `llama.cpp`, `vLLM` and other inference engines, OpenArc is a community-driven effort meant to push the Arc ecosytem forward with great performance, high usability and a knowledgeable community of users who just want Arc to work for their usecases.
17+
18+
Our Discord is probably the best place to keep up with all things Arc; If you are interested in using Intel devices for AI and machine learning, feel free to stop by!
1619

1720
Thanks to everyone on Discord for their continued support!
1821

1922
> [!NOTE]
20-
> Documentation has been ported to a Zensical site. It's still WIP, and the site isn't live.
21-
> To build and serve the docs after install:
22-
```
23-
zensical serve -a localhost:8004
24-
```
25-
## Table of Contents
23+
> Docs now live [here](https://searchsavior.github.io/OpenArc/)
2624
2725

2826

29-
- [Features](#features)
30-
- [Quickstart](#quickstart)
31-
- [Linux](#linux)
32-
- [Windows](#windows)
33-
- [Docker](#docker)
34-
3527

3628
## Features
37-
- NEW! Containerization with Docker #60 by @meatposes
38-
- NEW! Speculative decoding support for LLMs #57 by @meatposes
39-
- NEW! Streaming cancellation support for LLMs and VLMs
29+
- Containerization with Docker
30+
- Speculative decoding
31+
- Streaming cancellation support for LLMs and VLMs
4032
- Multi GPU Pipeline Paralell
4133
- CPU offload/Hybrid device
4234
- NPU device support
4335
- OpenAI compatible endpoints
4436
- `/v1/models`
45-
- `/v1/completions`: `llm` only
37+
- `/v1/completions`
4638
- `/v1/chat/completions`
47-
- `/v1/audio/transcriptions`: `whisper`, `qwen3_asr`
48-
- `/v1/audio/speech`: `kokoro` only
49-
- `/v1/embeddings`: `qwen3-embedding` #33 by @mwrothbe
50-
- `/v1/rerank`: `qwen3-reranker` #39 by @mwrothbe
39+
- `/v1/audio/transcriptions`
40+
- `/v1/audio/speech`
41+
- `/v1/embeddings`
42+
- `/v1/rerank`
5143
- `jinja` templating with `AutoTokenizers`
5244
- OpenAI Compatible tool calls with streaming and paralell
5345
- tool call parser currently reads "name", "argument"
5446
- Fully async multi engine, multi task architecture
5547
- Model concurrency: load and infer multiple models at once
56-
- Automatic unload on inference failure
5748
- `llama-bench` style benchmarking for `llm` w/automatic sqlite database
5849
- metrics on every request
5950
- ttft
@@ -63,156 +54,17 @@ zensical serve -a localhost:8004
6354
- tpot
6455
- load time
6556
- stream mode
66-
- More OpenVINO [examples](examples/)
57+
- OpenVINO [examples](examples/)
6758
- OpenVINO implementation of [hexgrad/Kokoro-82M](https://huggingface.co/hexgrad/Kokoro-82M)
6859
- OpenVINO implementation of Qwen3-TTS and Qwen3-ASR
60+
- Voice Cloning
61+
- Voice Design
62+
- Custom Voice
6963

7064

7165
> [!NOTE]
72-
> Interested in contributing? Please open an issue before submitting a PR!
73-
74-
<div align="right">
75-
76-
[↑ Top](#table-of-contents)
77-
78-
</div>
79-
80-
## Quickstart
81-
82-
<details id="linux">
83-
<summary><strong style="font-size: 1.2em;">Linux</strong></summary>
84-
85-
<br>
86-
87-
1. OpenVINO requires **device specifc drivers**.
88-
89-
- Visit [OpenVINO System Requirments](https://docs.openvino.ai/2025/about-openvino/release-notes-openvino/system-requirements.html#cpu) for the latest information on drivers.
90-
91-
2. Install uv from [astral](https://docs.astral.sh/uv/getting-started/installation/#standalone-installer)
92-
93-
3. After cloning use:
94-
95-
```
96-
uv sync
97-
```
98-
99-
4. Activate your environment with:
100-
101-
```
102-
source .venv/bin/activate
103-
```
104-
105-
Build latest optimum
106-
```
107-
uv pip install "optimum-intel[openvino] @ git+https://github.com/huggingface/optimum-intel"
108-
```
109-
110-
Build latest OpenVINO and OpenVINO GenAI from nightly wheels
111-
```
112-
uv pip install --pre -U openvino-genai --extra-index-url https://storage.openvinotoolkit.org/simple/wheels/nightly
113-
```
114-
115-
5. Set your API key as an environment variable:
116-
```
117-
export OPENARC_API_KEY=<api-key>
118-
```
119-
120-
6. To get started, run:
121-
122-
```
123-
openarc --help
124-
```
125-
126-
</details>
127-
128-
<details id="windows">
129-
<summary><strong style="font-size: 1.2em;">Windows</strong></summary>
130-
131-
<br>
132-
133-
1. OpenVINO requires **device specifc drivers**.
134-
135-
- Visit [OpenVINO System Requirments](https://docs.openvino.ai/2025/about-openvino/release-notes-openvino/system-requirements.html#cpu) to get the latest information on drivers.
136-
137-
2. Install uv from [astral](https://docs.astral.sh/uv/getting-started/installation/#standalone-installer)
66+
> Interested in contributing? Please open an issue before submitting a PR and join Discord so we can discuss!
13867
139-
3. Clone OpenArc, enter the directory and run:
140-
```
141-
uv sync
142-
```
143-
144-
4. Activate your environment with:
145-
146-
```
147-
.venv\Scripts\activate
148-
```
149-
150-
Build latest optimum
151-
```
152-
uv pip install "optimum-intel[openvino] @ git+https://github.com/huggingface/optimum-intel"
153-
```
154-
155-
Build latest OpenVINO and OpenVINO GenAI from nightly wheels
156-
```
157-
uv pip install --pre -U openvino-genai --extra-index-url https://storage.openvinotoolkit.org/simple/wheels/nightly
158-
```
159-
160-
5. Set your API key as an environment variable:
161-
```
162-
setx OPENARC_API_KEY openarc-api-key
163-
```
164-
165-
6. To get started, run:
166-
167-
```
168-
openarc --help
169-
```
170-
171-
</details>
172-
173-
<details id="docker">
174-
<summary><strong style="font-size: 1.2em;">Docker</strong></summary>
175-
176-
<br>
177-
178-
Instead of fighting with Intel's own docker images, we built our own which is as close to boilerplate as possible. For a primer on docker [check out this video](https://www.youtube.com/watch?v=DQdB7wFEygo).
179-
180-
181-
**Build and run the container:**
182-
```bash
183-
docker-compose up --build -d
184-
```
185-
186-
**Run the container:**
187-
```bash
188-
docker run -d -p 8000:8000 openarc:latest
189-
```
190-
**Enter the container:**
191-
```bash
192-
docker exec -it openarc /bin/bash
193-
```
194-
195-
## Environment Variables
196-
197-
```bash
198-
export OPENARC_API_KEY="openarc-api-key" # default, set it to whatever you want
199-
export OPENARC_AUTOLOAD_MODEL="model_name" # model_name to load on startup
200-
export MODEL_PATH="/path/to/your/models" # mount your models to `/models` inside the container
201-
docker-compose up --build -d
202-
```
203-
204-
205-
Take a look at the [docker-compose](docker-compose.yaml) and [Dockerfile](Dockerfile) ([Battlemage Dockerfile](Battlemage.Dockerfile)) for more details.
206-
207-
</details>
208-
209-
<br>
210-
211-
> [!NOTE]
212-
> Need help installing drivers? [Join our Discord](https://discord.gg/Bzz9hax9Jq) or open an issue.
213-
214-
> [!NOTE]
215-
> uv has a [pip interface](https://docs.astral.sh/uv/pip/) which is a drop in replacement for pip, but faster. Pretty cool, and a good place to start learning uv.
21668

21769

21870
## Acknowledgments

0 commit comments

Comments
 (0)