Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

📦 v0.0.1 (Private Preview) #115

Merged
merged 93 commits into from
Jan 31, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
93 commits
Select commit Hold shift + click to select a range
1154fe8
#6: Added a basic structure of the project (#7)
roma-glushko Dec 9, 2023
72e75e8
Feature/3 provider openai (#13)
mkrueger12 Dec 10, 2023
27f7118
🛠️ #12 Init Glide CLI (#16)
roma-glushko Dec 11, 2023
bd1d4d3
3 provider openai (#17)
mkrueger12 Dec 12, 2023
dd17fc6
15 request body to ai api schema (#18)
mkrueger12 Dec 12, 2023
86c624c
24 refactor openai provider (#25)
mkrueger12 Dec 15, 2023
99ab0dc
#8 Setting up CI checks via GH Actions (#31)
roma-glushko Dec 19, 2023
23693c7
#14 🛠️ Inited Glide Logging (#30)
roma-glushko Dec 23, 2023
3d8062f
Removed the linter (#38)
roma-glushko Dec 24, 2023
639d144
#35: Updated README (#36)
roma-glushko Dec 25, 2023
04fb45b
Update README.md
roma-glushko Dec 25, 2023
9ddf477
Update README.md
roma-glushko Dec 25, 2023
6e363e5
#11: Init Config (#37)
roma-glushko Dec 27, 2023
c7d4aed
29 setup openai client (#34)
mkrueger12 Dec 27, 2023
67c00d8
Update dependencies and fix telemetry configuration
Dec 27, 2023
b22b487
fix dependencies
Dec 28, 2023
d4f2d77
#39: Report test coverage to CodeCov (#47)
roma-glushko Dec 30, 2023
52fb7fc
Disable codecov/patch job (#50)
roma-glushko Dec 31, 2023
c62579d
Fail on no config passed (#49)
roma-glushko Dec 31, 2023
ae3cf1b
#42 init router config (#48)
roma-glushko Jan 1, 2024
39f3c89
#22: Installed & exposed API documentation (#52)
roma-glushko Jan 1, 2024
4cde769
#51: Build routers & models based on provided config (#53)
roma-glushko Jan 1, 2024
0ebf9f2
Update README.md
mkrueger12 Jan 2, 2024
8900b8d
54 unified response (#55)
mkrueger12 Jan 2, 2024
4c4e4d7
Update README.md
mkrueger12 Jan 3, 2024
2cf73a5
#5: Cohere Client Init (#56)
mkrueger12 Jan 3, 2024
1499991
Update README.md
mkrueger12 Jan 3, 2024
ff3dc22
Update README.md
mkrueger12 Jan 3, 2024
4b66e2f
61 update openai client (#62)
mkrueger12 Jan 5, 2024
faf0e42
#4: Azure OpenAI Client Init (#57)
mkrueger12 Jan 5, 2024
5884ba4
#58: setup octoml client (#59)
mkrueger12 Jan 5, 2024
1940015
Update README.md
mkrueger12 Jan 5, 2024
c4621e0
Add files via upload
mkrueger12 Jan 5, 2024
15766e9
Update README.md
mkrueger12 Jan 5, 2024
a529329
Delete docs/images/octo.png
mkrueger12 Jan 5, 2024
af94490
Add files via upload
mkrueger12 Jan 5, 2024
5fa9930
Delete docs/images/octo.png
mkrueger12 Jan 5, 2024
7c24cc8
Add files via upload
mkrueger12 Jan 5, 2024
7f91656
Updated OpenAPI specs after finalizing the unified chat response (#64)
roma-glushko Jan 6, 2024
4090350
Add citation reference (#69)
roma-glushko Jan 8, 2024
6f221f4
Update README.md
roma-glushko Jan 9, 2024
7a58b35
🧘‍♀️ #43: Fallback Mechanism for Lang Models (#68)
roma-glushko Jan 11, 2024
124a1e7
Update README.md
mkrueger12 Jan 12, 2024
03f8d89
Create ROADMAP.md
mkrueger12 Jan 12, 2024
56d1f46
Update README.md
mkrueger12 Jan 12, 2024
3ae28d7
Update README.md
mkrueger12 Jan 12, 2024
d6fa702
Update README.md
mkrueger12 Jan 13, 2024
fa25efc
Fixing the codecov integration after org renaming (#74)
roma-glushko Jan 14, 2024
01f46d2
🛠️ #44 Implemented the round robin routing strategy (#71)
roma-glushko Jan 14, 2024
2957360
#72: Update AzureOAI client (#73)
mkrueger12 Jan 14, 2024
6aec59f
🛠️ #46 inited the least latency routing (#70)
roma-glushko Jan 14, 2024
5c233f6
🛠️ #45: Added WRR routing strategy (#75)
roma-glushko Jan 14, 2024
a01ce27
#77: onboard cohere and octo (#79)
mkrueger12 Jan 14, 2024
450b062
Update README.md
mkrueger12 Jan 15, 2024
37826a0
Update README.md
mkrueger12 Jan 15, 2024
c9fc311
Update README.md
mkrueger12 Jan 15, 2024
5603f43
Update ROADMAP.md
mkrueger12 Jan 15, 2024
4d72d6c
Update README.md
mkrueger12 Jan 15, 2024
c2e5a31
Debug providers (#80)
mkrueger12 Jan 16, 2024
34c90e9
Update README.md
mkrueger12 Jan 16, 2024
9d551e1
Update README.md
mkrueger12 Jan 16, 2024
e09ec1a
👩‍⚖️ Added the code of conduct
roma-glushko Jan 16, 2024
dfa45cd
👮‍♀️ Added the security policy
roma-glushko Jan 16, 2024
34f64a2
update gitignore
Jan 16, 2024
27f32e8
Merge branch 'develop' of https://github.com/modelgateway/Glide into …
Jan 16, 2024
e268d74
Fix: Update weighted_round_robin const
mkrueger12 Jan 17, 2024
3c9f8c7
Update README.md
mkrueger12 Jan 17, 2024
022623d
Update README.md
mkrueger12 Jan 17, 2024
5790d32
Update weighted_round_robin.go
mkrueger12 Jan 17, 2024
fa786ee
#60: anthropic client (#89)
mkrueger12 Jan 19, 2024
04a8b09
Update README.md
mkrueger12 Jan 19, 2024
8246dc8
👷 #9: Build binaries on tags (#88)
roma-glushko Jan 21, 2024
2918b68
Merge branch 'main' into develop
roma-glushko Jan 21, 2024
831e56b
📝 Added changelog file
roma-glushko Jan 21, 2024
7afc712
👷 Remove goreleaser configs unsupported in the free version
roma-glushko Jan 21, 2024
c4a75b7
Merge branch 'main' into develop
roma-glushko Jan 21, 2024
d4e6c84
👷 Enabled Homebrew formula publishing for prereleases (#99)
roma-glushko Jan 21, 2024
3e2f538
Update README.md
roma-glushko Jan 22, 2024
750fd9e
⚙️ #40: Added config validation (#98)
roma-glushko Jan 22, 2024
dad1540
⚙️ #41: Exposed the basic HTTP server configs (#101)
roma-glushko Jan 22, 2024
0a41441
📝 v0.0.1-rc.2 changelog
roma-glushko Jan 22, 2024
20bee21
📝 Updated the installation methods (#97)
roma-glushko Jan 22, 2024
ca317f8
📝 Added Homebrew Installation
roma-glushko Jan 22, 2024
e58f8a2
Added Glide logos (#105)
roma-glushko Jan 25, 2024
68e4751
✨ #81: Allow to chat message based for specific models (#90)
mkrueger12 Jan 28, 2024
c7df021
📝 #104 Added the marketecture (#106)
roma-glushko Jan 28, 2024
db60891
👷 #109 Add license scan report and status (#108)
fossabot Jan 28, 2024
0b032c7
Update ROADMAP.md
mkrueger12 Jan 29, 2024
72f2c75
🔧 #78: Normalize response latency by response token count (#111)
roma-glushko Jan 30, 2024
1a3339c
📝#112 added the CLI banner info (#113)
roma-glushko Jan 30, 2024
4865da9
📝 Make links actual across the project (#114)
roma-glushko Jan 31, 2024
f7e52b7
Merge branch 'main' into develop
roma-glushko Jan 31, 2024
4a38d70
📝 v0.0.1 Changelog
roma-glushko Jan 31, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .goreleaser.yml
Original file line number Diff line number Diff line change
Expand Up @@ -144,7 +144,7 @@ brews:
#
# Default depends on the client.
# Templates: allowed
url_template: "https://github.mycompany.com/foo/bar/releases/download/{{ .Tag }}/{{ .ArtifactName }}"
url_template: "https://github.com/einstack/glide/releases/download/{{ .Tag }}/{{ .ArtifactName }}"

# Allows you to set a custom download strategy. Note that you'll need
# to implement the strategy and add it to your tap repository.
Expand Down
15 changes: 15 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,21 @@ The changelog consists of three categories:
- **Improvements** - bugfixes, performance and other types of improvements to existing functionality
- **Miscellaneous** - all other updates like build, release, CLI, etc.

## 0.0.1 (Jan 31st, 2024)

### Features

- ✨ #81: Allow to chat message based for specific models (@mkrueger12)

### Improvements

- 🔧 #78: Normalize response latency by response token count (@roma-glushko)
- 📝 #112 added the CLI banner info (@roma-glushko)

### Miscellaneous

- 📝 #114 Make links actual across the project (@roma-glushko)

## 0.0.1-rc.2 (Jan 22nd, 2024)

### Improvements
Expand Down
2 changes: 1 addition & 1 deletion CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ a project may be further defined and clarified by project maintainers.
## Enforcement

Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported by contacting the project team at roman.glushko.m@gmail.com. All
reported by contacting the project team at [contact@einstack.ai](mailto:contact@einstack.ai). All
complaints will be reviewed and investigated and will result in a response that
is deemed necessary and appropriate to the circumstances. The project team is
obligated to maintain confidentiality with regard to the reporter of an incident.
Expand Down
121 changes: 93 additions & 28 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,16 @@
# Glide: Cloud-Native LLM Gateway for Seamless LLMOps
<div align="center">
<img src="docs/images/glide.png" width="400px" alt="Glide GH Header" />
<img src="docs/logo/glide_no_bgd.png" width="300px" alt="Glide GH Header" />
</div>

[![LICENSE](https://img.shields.io/github/license/modelgateway/glide.svg?style=flat-square&color=%233f90c8)](https://github.com/modelgateway/glide/blob/main/LICENSE)

[![codecov](https://codecov.io/github/EinStack/glide/graph/badge.svg?token=F7JT39RHX9)](https://codecov.io/github/EinStack/glide)
[![Discord](https://img.shields.io/discord/1181281407813828710)](https://discord.gg/pt53Ej7rrc)
[![Documentation](https://img.shields.io/badge/build-view-violet%20?style=flat&logo=books&label=docs&link=https%3A%2F%2Fglide.einstack.ai%2F)](https://glide.einstack.ai/)
[![LICENSE](https://img.shields.io/github/license/EinStack/glide.svg?style=flat-square&color=%233f90c8)](https://github.com/EinStack/glide/blob/main/LICENSE)
[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2FEinStack%2Fglide.svg?type=shield)](https://app.fossa.com/projects/git%2Bgithub.com%2FEinStack%2Fglide?ref=badge_shield)

---

Glide is your go-to cloud-native LLM gateway, delivering high-performance LLMOps in a lightweight, all-in-one package.

Expand All @@ -14,9 +20,11 @@ so you can dive into tackling your core challenges.
Glide sits between your application and model providers to seamlessly handle various LLMOps tasks like
model failover, caching, key management, etc.

<img src="docs/images/marketecture.svg" />

Take a look at the develop branch.

Check out our [documentation](https://backlandlabs.mintlify.app/introduction)!
Check out our [documentation](https://glide.einstack.ai)!

> [!Warning]
> Glide is under active development right now. Give us a star to support the project ✨
Expand All @@ -28,7 +36,7 @@ Check out our [documentation](https://backlandlabs.mintlify.app/introduction)!
- Support **popular LLM providers**.
- **High performance**. Performance is our priority. We want to keep Glide "invisible" for your latency-wise, while providing rich functionality.
- **Production-ready observability** via OpenTelemetry, emit metrics on models health, allows whitebox monitoring.
- Straightforward and simple maintenance and configuration, centrilized API key control & management & rotation, etc.
- Straightforward and simple maintenance and configuration, centralized API key control & management & rotation, etc.

## Supported Providers

Expand All @@ -48,7 +56,7 @@ Check out our [documentation](https://backlandlabs.mintlify.app/introduction)!

Routers are a core functionality of Glide. Think of routers as a group of models with some predefined logic. For example, the resilience router allows a user to define a set of backup models should the initial model fail. Another example, would be to leverage the least-latency router to make latency sensitive LLM calls in the most efficient manner.

Detailed info on routers can be found [here](https://backlandlabs.mintlify.app/essentials/routers).
Detailed info on routers can be found [here](https://glide.einstack.ai/essentials/routers).

#### Available Routers

Expand All @@ -62,43 +70,47 @@ Detailed info on routers can be found [here](https://backlandlabs.mintlify.app/e

## Get Started

#### Install
### Installation

The easiest way to deploy Glide is to build from source.
The easiest way to deploy Glide is to our [demo repository](https://github.com/EinStack/glide-demo.git) and [docker-compose](https://docs.docker.com/compose/).

Steps to build a container with Docker can be found [here](https://backlandlabs.mintlify.app/introduction#install-and-deploy).
### 1. Clone the demo repository

```bash
git clone https://github.com/EinStack/glide-demo.git
```

### 2. Init Configs

The demo repository comes with a basic config. Additionally, you need to init your secrets by running:

```bash
make init # from the demo root
```

#### Set Configuration File
This will create the `secrets` directory with one `.OPENAI_API_KEY` file that you need to put your key to.

Find detailed information on configuration [here](https://backlandlabs.mintlify.app/essentials/configuration).
### 3. Start Glide

```yaml
telemetry:
logging:
level: debug # debug, info, warn, error, fatal
encoding: console
After that, just use docker compose via this command to start your demo environment:

routers:
language:
- id: myrouter
models:
- id: openai
openai:
api_key: ""
```bash
make up
```

#### Sample API Request to `/chat` endpoint
### 4. Sample API Request to `/chat` endpoint

See [API Reference](https://backlandlabs.mintlify.app/api-reference/introduction) for more details.
See [API Reference](https://glide.einstack.ai/api-reference/introduction) for more details.

```json
{
"model": "gpt-3.5-turbo", # this is not required but can be used to specify different prompts to different models
"message":
{
"role": "user",
"content": "Where was it played?"
},
"messageHistory": [
"messageHistory": [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Who won the world series in 2020?"},
{"role": "assistant", "content": "The Los Angeles Dodgers won the World Series in 2020."}
Expand All @@ -108,13 +120,60 @@ See [API Reference](https://backlandlabs.mintlify.app/api-reference/introduction

### API Docs

Once deployed, Glide comes with OpenAPI documentation that is accessible via http://127.0.0.1:9099/v1/swagger/index.html
Finally, Glide comes with OpenAPI documentation that is accessible via http://127.0.0.1:9099/v1/swagger/index.html

That's it 🙌

Use [our documentation](https://glide.einstack.ai) to further learn about Glide capabilities and configs.

---

Other ways to install Glide are available:

### Homebrew (MacOS)

```bash
brew tap einstack/tap
brew install einstack/tap/glide
```

### Snapcraft (Linux)

Coming Soon

### Docker Images

Glide provides official images in our [GHCR](https://github.com/EinStack/glide/pkgs/container/glide):

- Alpine 3.19:
```bash
docker pull ghcr.io/einstack/glide:latest-alpine
```

- Ubuntu 22.04 LTS:
```bash
docker pull ghcr.io/einstack/glide:latest-ubuntu
```

- Google Distroless (non-root)
```bash
docker pull ghcr.io/einstack/glide:latest-distroless
```

- RedHat UBI 8.9 Micro
```bash
docker pull ghcr.io/einstack/glide:latest-redhat
```

### Helm Chart

Coming Soon

## Community

- Join [Discord](https://discord.gg/pt53Ej7rrc) for real-time discussion

Open [an issue](https://github.com/modelgateway/glide/issues) or start [a discussion](https://github.com/modelgateway/glide/discussions)
Open [an issue](https://github.com/EinStack/glide/issues) or start [a discussion](https://github.com/EinStack/glide/discussions)
if there is a feature or an enhancement you'd like to see in Glide.

## Contribute
Expand All @@ -126,6 +185,12 @@ if there is a feature or an enhancement you'd like to see in Glide.

Thanks everyone for already put their effort to make Glide better and more feature-rich:

<a href="https://github.com/modelgateway/glide/graphs/contributors">
<a href="https://github.com/EinStack/glide/graphs/contributors">
<img src="https://contributors-img.web.app/image?repo=modelgateway/glide" />
</a>

## License

Apache 2.0

[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2FEinStack%2Fglide.svg?type=large)](https://app.fossa.com/projects/git%2Bgithub.com%2FEinStack%2Fglide?ref=badge_large)
6 changes: 3 additions & 3 deletions ROADMAP.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@ This document describes the current status and the upcoming milestones of the Gl
| :---: | :--- | :---: |
| 🍏 | **Unified Chat Endpoint Support** | 4 / 4 |
| 🍏 | **Fallback Routing Strategy** | 1 / 1 |
| 🍏 | **Priority, Round Robin, Weighted Round Robin, Least Latency** | 2 / 4 |
| 🍎 | **Documentation** | 1 / 1 |
| 🍎 | **Private Preview** | 4 / 5 |
| 🍏 | **Priority, Round Robin, Weighted Round Robin, Least Latency** | 4 / 4 |
| 🍏 | **Documentation** | 1 / 1 |
| 🍎 | **Private Preview** | 4.5 / 5 |
| 🍎 | **Streaming Support** | 0 / 4 |
| 🍎 | **Embedding Support** | 0 / 4 |
| 🍎 | **Caching** | 0 / 1 |
Expand Down
2 changes: 1 addition & 1 deletion SECURITY.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,4 @@
We want to keep Glide safe for everyone.

If you've discovered a security vulnerability in Glide,
we appreciate your help in disclosing it to us in a responsible manner, using this email: roman.glushko.m@gmail.com
we appreciate your help in disclosing it to us in a responsible manner, using this email: [contact@einstack.ai](mailto:contact@einstack.ai)
33 changes: 26 additions & 7 deletions docs/docs.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,13 @@ const docTemplate = `{
"description": "{{escape .Description}}",
"title": "{{.Title}}",
"contact": {
"name": "Glide Community",
"url": "https://github.com/modelgateway/glide"
"name": "EinStack Community",
"url": "https://github.com/EinStack/glide/",
"email": "contact@einstack.ai"
},
"license": {
"name": "Apache 2.0",
"url": "https://github.com/modelgateway/glide/blob/develop/LICENSE"
"url": "https://github.com/EinStack/glide/blob/develop/LICENSE"
},
"version": "{{.Version}}"
},
Expand Down Expand Up @@ -626,6 +627,17 @@ const docTemplate = `{
}
}
},
"schemas.OverrideChatRequest": {
"type": "object",
"properties": {
"message": {
"$ref": "#/definitions/schemas.ChatMessage"
},
"model_id": {
"type": "string"
}
}
},
"schemas.ProviderResponse": {
"type": "object",
"properties": {
Expand All @@ -639,11 +651,11 @@ const docTemplate = `{
}
},
"tokenCount": {
"$ref": "#/definitions/schemas.TokenCount"
"$ref": "#/definitions/schemas.TokenUsage"
}
}
},
"schemas.TokenCount": {
"schemas.TokenUsage": {
"type": "object",
"properties": {
"promptTokens": {
Expand All @@ -668,6 +680,9 @@ const docTemplate = `{
"items": {
"$ref": "#/definitions/schemas.ChatMessage"
}
},
"override": {
"$ref": "#/definitions/schemas.OverrideChatRequest"
}
}
},
Expand Down Expand Up @@ -700,16 +715,20 @@ const docTemplate = `{
}
}
}
},
"externalDocs": {
"description": "Documentation",
"url": "https://glide.einstack.ai/"
}
}`

// SwaggerInfo holds exported Swagger Info so clients can modify it
var SwaggerInfo = &swag.Spec{
Version: "1.0",
Version: "0.0.1",
Host: "localhost:9099",
BasePath: "/",
Schemes: []string{"http"},
Title: "Glide Gateway",
Title: "Glide",
Description: "API documentation for Glide, an open-source lightweight high-performance model gateway",
InfoInstanceName: "swagger",
SwaggerTemplate: docTemplate,
Expand Down
Loading
Loading