Skip to content

Commit

Permalink
Setting initial structure of site (#46)
Browse files Browse the repository at this point in the history
- Simple landing page
- Links to get involved in community
- Basis for future Docs
- Blog setup, and a copy of the original announcement post from CNCF
blog

We will need to set up the build and publish to github pages, and I've
got the domain envoyaigateway.io for us to use.

Related to #29

---------

Signed-off-by: Erica Hughberg <[email protected]>
  • Loading branch information
missBerg authored Dec 19, 2024
1 parent 6f3fe96 commit d686ce9
Show file tree
Hide file tree
Showing 29 changed files with 18,821 additions and 0 deletions.
2 changes: 2 additions & 0 deletions .codespell.skip
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@
./manifests/charts/ai-gateway-helm/crds/*
./site/package-lock.json
./site/package.json
25 changes: 25 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,28 @@
*.kube
.bin
out/
.DS_Store

# Files and directories to ignore in the site directory
# dependencies
site/node_modules

# production
site/build

# generated files
site/.docusaurus
site/.cache-loader

# misc
site/.DS_Store
site/.env.local
site/.env.development.local
site/.env.test.local
site/.env.production.local

site/npm-debug.log*
site/yarn-debug.log*
site/yarn-error.log*
site/static/.DS_Store
site/temp
36 changes: 36 additions & 0 deletions site/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# Website

This website is built using [Docusaurus](https://docusaurus.io/), a modern static website generator.

### Local Development

### Requirements {#requirements}

- [Node.js](https://nodejs.org/en/download/) version 18.0 or above (which can be checked by running `node -v`). You can use [nvm](https://github.com/nvm-sh/nvm) for managing multiple Node versions on a single machine installed.
- When installing Node.js, you are recommended to check all checkboxes related to dependencies.

### Install

```
npm install
```

### Run locally

#### NPX
```
npx docusaurus start
```

#### NPM
```
npm run start
```

#### **When to Use Which?**
- Use npx docusaurus start:
- For quick tests or temporary runs without installing the Docusaurus CLI.
- If you want to use the latest version of Docusaurus globally.
- Use npm run start:
- For consistent and reproducible builds, ensuring you use the local version of Docusaurus.
- In your development workflow, where the start script is part of your project setup.
39 changes: 39 additions & 0 deletions site/blog/2024-10-18-introducing-envoy-ai-gw.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
---
slug: introducing-envoy-ai-gateway
title: Introducing Envoy AI Gateway
authors: [missberg]
tags: [news]
---

Open collaboration to bring AI Gateway features to the Envoy community

<!-- truncate -->

The industry is embracing Generative AI functionality, and we need to evolve how we handle traffic on an industry-wide scale. Keeping AI traffic handling features exclusive to enterprise licenses is counterproductive to the industry’s needs. This approach limits incentives to a single commercial entity and its customers. Even single-company open-source initiatives do not promote open multi-company collaboration.

A shared challenge like this presents an opportunity for open collaboration to build the necessary features. We believe bringing together different use cases and requirements through open collaboration will lead to better solutions and accelerate innovation. The industry will benefit from diverse expertise and experiences by openly collaborating on software across companies and industries.

That is why Tetrate and Bloomberg have started an open collaboration to bring critical features for this new era of Gen AI integration. Collaborating openly in the Envoy community, bringing AI traffic handling features to Envoy, via Envoy Gateway and Envoy Proxy.

## Why we need AI traffic handling features
What makes traffic to LLM models different from traditional API traffic?

On the surface it appears similar. Traffic comes from a client app that is making an API request, and this request has to get to the provider that hosts the LLM model.

However, it is different. Managing LLM traffic from multiple apps, to multiple LLM providers, introduces new and different challenges where traditional API Gateway features fall short.

For example, traditional rate-limiting based on number of requests doesn’t work for controlling usage of LLM providers as they’re computationally complex services. To measure usage LLM providers tokenize the words in the request message and response message, and count the number of tokens used. This count gives a good approximation of the computational complexity and cost of serving the request.

Beyond controlling usage of LLMs there are many more challenges relating to ease of integration and high-availability architectures. It’s no longer enough to just optimize for quality of service alone, adopters must consider costs of usage in real time. As adopters of Gen AI look for Gateway solutions to handle these challenges for their system, they often find the necessary features locked behind enterprise licenses.

## Three key MVP features
Now, let’s look at how handling AI traffic poses new challenges for Gateways. There are several features we discussed together with our collaborators at Bloomberg, and together we decided on three key features for the MVP:

- **Usage Limiting** – to control LLM usage based on word tokens
- **Unified API** – to simplify client integration with multiple LLM providers
- **Upstream Authorization** – to configure Authorization to multiple upstream LLM providers
What other features are you looking for? Get in touch with us to share your use case and define the future of Envoy AI Gateway.

We are really excited about these features being part of Envoy. They will benefit those integrating with LLM providers and, ultimately, also Gateway users for general API request traffic.

When it comes to AI Gateway features, we have chosen to collaborate and build within the CNCF Envoy project because we believe multi-company, open-source projects benefit the entire industry by enabling innovation without creating single vendor risk.
8 changes: 8 additions & 0 deletions site/blog/authors.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
missberg:
name: Erica Hughberg
title: Envoy AI Gateway Maintainer
url: https://github.com/missBerg
image_url: https://github.com/missBerg.png
page: true
socials:
github: missBerg
4 changes: 4 additions & 0 deletions site/blog/tags.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
envoy:
label: News
permalink: /news
description: Project News
9 changes: 9 additions & 0 deletions site/docs/intro.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
sidebar_position: 1
---

# Envoy AI Gateway Docs

Version 0.1.0 is expected end of January 2025.


149 changes: 149 additions & 0 deletions site/docusaurus.config.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,149 @@
import {themes as prismThemes} from 'prism-react-renderer';
import type {Config} from '@docusaurus/types';
import type * as Preset from '@docusaurus/preset-classic';

// This runs in Node.js - Don't use client-side code here (browser APIs, JSX...)

const config: Config = {
title: 'Envoy AI Gateway',
tagline: 'Envoy AI Gateway is an open source project for using Envoy Gateway to handle request traffic from application clients to GenAI services.',
favicon: 'img/favicon.ico',

// Set the production url of your site here
url: 'https://envoyaigateway.io',
// Set the /<baseUrl>/ pathname under which your site is served
// For GitHub pages deployment, it is often '/<projectName>/'
baseUrl: '/',

// GitHub pages deployment config.

organizationName: 'envoyproxy',
projectName: 'ai-gateway',

onBrokenLinks: 'throw',
onBrokenMarkdownLinks: 'warn',

// Even if you don't use internationalization, you can use this field to set
// useful metadata like html lang. For example, if your site is Chinese, you
// may want to replace "en" with "zh-Hans".
i18n: {
defaultLocale: 'en',
locales: ['en'],
},


presets: [
[
'classic',
{
docs: {
sidebarPath: './sidebars.ts',
},
blog: {
showReadingTime: true,
feedOptions: {
type: ['rss', 'atom'],
xslt: true,
},
onInlineTags: 'warn',
onInlineAuthors: 'warn',
onUntruncatedBlogPosts: 'warn',
},
theme: {
customCss: './src/css/custom.css',
},
} satisfies Preset.Options,
],
],

themeConfig: {
colorMode:{
disableSwitch:true,
},
image: 'img/social-card-envoy-ai-gw.png',
navbar: {
title: 'Envoy AI Gateway',
logo: {
alt: 'Envoy',
src: 'img/logo.svg',
},
items: [
// {
// type: 'docSidebar',
// sidebarId: 'tutorialSidebar',
// position: 'left',
// label: 'Tutorial',
// },
{to: '/blog', label: 'Blog', position: 'left'},
{
href: 'https://github.com/envoyproxy/ai-gateway',
label: 'GitHub',
position: 'right',
},
],
},
footer: {
style: 'light',
links: [
{
title: 'Envoy Ecosystem',
items: [
{
label: 'Gateway',
href: 'https://gateway.envoyproxy.io',
},
{
label: 'Proxy',
href: 'https://envoyproxy.io',
},
{
label: 'Mobile',
href: 'https://envoymobile.io',
},
],
},
{
title: 'Community',
items: [
{
label: 'Join us on Slack',
href: 'https://communityinviter.com/apps/envoyproxy/envoy',
},
{
label: 'Weekly Meeting (Thursdays)',
href: 'https://zoom-lfx.platform.linuxfoundation.org/meeting/91546415944?password=61fd5a5d-41e9-4b0c-86ea-b607c4513e37',
},
{
label: 'Meeting Notes',
href: 'https://docs.google.com/document/d/10e1sfsF-3G3Du5nBHGmLjXw5GVMqqCvFDqp_O65B0_w/edit?tab=t.0',
},
{
label: 'LinkedIn',
href: 'https://www.linkedin.com/company/envoy-cloud-native',
},
],
},
{
title: 'More',
items: [
{
label: 'Blog',
to: '/blog',
},
{
label: 'GitHub',
href: 'https://github.com/envoyproxy/ai-gateway',
},
],
},
],
copyright: `Copyright © ${new Date().getFullYear()} Envoy AI Gateway`,
},
prism: {
theme: prismThemes.github,
darkTheme: prismThemes.dracula,
},
} satisfies Preset.ThemeConfig,
};

export default config;
Loading

0 comments on commit d686ce9

Please sign in to comment.