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

πŸ“¦ v0.0.1 (Private Preview) #115

merged 93 commits into from
Jan 31, 2024

Conversation

roma-glushko
Copy link
Member

@roma-glushko roma-glushko commented Jan 31, 2024

This is the first "stable" version of Glide as we have closed all tasks related to the Private Preview scope πŸŽ‰πŸŽ‰πŸŽ‰

Changelog

Features

Improvements

Miscellaneous

roma-glushko and others added 30 commits December 9, 2023 13:50
* init

* fix: remove package

* #3: project organization

* #3-feat: build chat api

* #3 rename func

* Remove unused dependencies from go.sum

* #3: Add .env to .gitignore

---------

Co-authored-by: Max <[email protected]>
* #12 Inited the Gateway, ServerManager components + CLI

* #12 Inited ServerManager

* #12 Used hertz as a HTTP server

* #12 Added todo

* #13 Added the health endpoint
* #3: Update dependencies, fix package names, add validators

* #3: Remove unused fields in ProviderConfig struct

* #3: Update OpenAI provider configuration validation

* #3: Refactor OpenAI provider config structure

* #3: Update go.mod and go.sum files

* #3: add comments

* #3: Refactor package name in OpenAI API and chat files

* #3: build OpenAI config

* #3: Build API Request

* #3: Refactor param checking in BuildAPIRequest function

* #3: build request based on client parameters

---------

Co-authored-by: Max <[email protected]>
* #15: Update dependencies in go.mod and add input validation using validator package

* #15: Fix validation error in BuildAPIRequest function

* #15: Refactor OpenAI provider configuration structure

* #15: TODO: Import provider configs to the config list

* #15: Import OpenAI provider configuration and update BuildAPIRequest function

* #15: comments

---------

Co-authored-by: Max <[email protected]>
* #24: Refactor OpenAI provider config struct

* #24: Update OpenAiProviderConfig Messages field validation

---------

Co-authored-by: Max <[email protected]>
* #8 Setting up CI checks via GH Actions

* #8 Fixing lint errors in the existing codebase

* #8 Fixed remaining lint errors

* #8 Installed tools via makefile, merged tests with the lint yaml

* #8 Disabled troublesome checks

* #8 fixing the minor version for gosec

* #8 Run gosec directly in the job
* #14 Inited Glide logging based on Zap

* #14 introducing a new telemetry struct

* #14: Introduced a new telemetry struct to hold all observability components

* #14: Added the router struct

* #14: Configured hertz logger to obey the general logging config

* #14 Added more static checks
* #35: Updated readme

* #35: Added more sections

* #35: minor adjustments

* #35 Optimized the logo

* #35: Added more useful info
Centered the logo
made badge color more readable
* #11: Added a new config struct

* #11: Added API config and connected it to the general config

* #11 Added config provider & loading a config file

* #11 Added directive expander

* #11 Added a secret field

* #11 Linting

* #11 Added default configs & replaced mapstruct back to YAML & simplified expander setup

* #11 finished directive expander

* #11 linting

* #11 Added a test for a single $ char

* #11 linting

* #11 fixed typo
* #29: openai client

* #29: add sample

* #29: Refactor OpenAI provider configuration

* #29: Refactor OpenAiClient struct and methods

* #29: Refactor OpenAiClient struct and methods

* #29: refactor

* 29: chat converted to Hertz

* #29: Update OpenAI provider configuration and chat request validation

* #29: clean up

* #29: Remove unused code and refactor parseStreamingChatResponse function

* #29: Update dependencies in go.mod and go.sum files

* #29: build client init

* #29: CreatChatRequest

* #29: Fix import and log package names

* #29: add run method

* #29: tests passing

* #29: tests passing

* #29: add todo

* #29: go mod tody

* #29: gofmt

* #29: gofumpt

* #29: lint

* #29: lint

* #29: lint

* #29: fix Implicit memory aliasing

* #29: lint

* #29: update request from defaultParams

* #29: lint

* #29: lint

* #29: emove unused variable in OpenAiClient constructor

* #29: Update client

* #29: Refactor OpenAI chat functionality

* #29: Fix OpenAI client error handling and validation

* #29: Fix OpenAI client error handling and validation

* #29: Set the appropriate base URL in OpenAiClient constructor

* #29: Refactor OpenAI provider configuration

* #29: comments

* #29: Refactor OpenAI client and related functions

* #29: chores

* #29: chores

* #29: comment

* #29: create a yaml for provider global configs

* #29: comments

* #29: comments

* #29: update http client

* #29: Add file path validation and error handling in openaiclient.go

* #29: move common helpers to types.go

* #29: chores

* #29: Refactor OpenAI client and chat request creation

* #29: Remove unused dependencies and update dependencies

* #29: Update Unified Data structure

* #29: remove provider

* #29: clean up

* #29: clean up

* #29: lint

* #29: remove hertz comment

* #29: pass unified data to chat method

* #29: init logging

* #29: init logging

* #29: init logging

* #29: lint

---------

Co-authored-by: Max <[email protected]>
* #39: Report test coverage to CodeCov

* #39: Fixing linting

* #39: linting

* #39 Adding the coverage badge to the readme
* Fail on no config file

* Use the dev config in the make run command

* Covered a few exceptional cases

* Linting

* Linting
- Cleaned up and restructured provider/openai codebase. Separated unified schemas to the api package.
- Added and exposed the language chat API with the unified request/response schemas. Updated the bruno collection with this request
- Added an example of client tests
- Connected Glide API with the underlying model provider (OpenAI client is hardcoded for now)
- Implemented default value setting for nested nillable config items
- Implemented provider setting validation on the model item level
* 22: Installed & exposed API documentation

* #22 Left a note about API docs in the readme.md

* #22 Check if API docs were updated in CI

* #22: linting

* #22: install swag CLI
* #51: Build routers & models based on provided config

* #51 Fixed circular import issue

* #51: Checked model config before ending initialization

* #51: updated the dev config to setup the openAI model

* 51: Fixing vuln issues

* #51 logged more context

* #51: Collected routers as slice

* #51: Added the new lang routers API

* #51: Hide api key filed completely
Updated some of the description and spelling
* #54: Refactor UnifiedChatResponse struct and add ProviderResponse and TokenCount structs

* #54: Unified response created and tested - passing

* #54: lint

* #54: lint

---------

Co-authored-by: Max <[email protected]>
* #54: Refactor UnifiedChatResponse struct and add ProviderResponse and TokenCount structs

* #54: Unified response created and tested - passing

* #54: lint

* #5: init

* #5: build cohere chat client

* #5: lint

* #5: Cohere provider working

* #5: lint

* #5: remove api key lol

* #5: Update OpenAI references to Cohere

* #5: Refactor cohere client test and update response ID

* #5: lint

* #5: lint

---------

Co-authored-by: Max <[email protected]>
* #61: Create OpenAI Chat Response Schema

* #61: Test unmarshling

* #61: unmarshal openai response

* #61: Update CohereChatCompletion struct and related types

* #61: Update Cohere chat response mapping

* #61: lint

* #61: lint

---------

Co-authored-by: Max <[email protected]>
* #4: add azure openai client

* #4: update testdata

* #4: lint

* #4: add tests

* #4: fix var name

* #4: add tests

* #4: tests

* #4: fix model response

---------

Co-authored-by: Max <[email protected]>
mkrueger12 and others added 24 commits January 17, 2024 06:31
* #60: Add Anthropic provider

* Update chat provider response schema, replace responseID

* #60: Fix field naming conventions in language.go and chat.go

* #60: reduce complexity of toModel func and lint

* #60: add test

* #60: lint

---------

Co-authored-by: Max <[email protected]>
* #9 Inited goreleaser

* #9: Inited the goreleaser

* #9 Added a GH Action to release binaries on tags

* #9: Setup release of binaries & announcement

* #9: fixed syntax errors

* #9 Commented out some lines that could cause noise & made the release workflow be dependant on the lint & vuln workflows

* #9: allow to run linting & vuln checks on tags

* #9 fixing dependencies between workflows

* #9 Tried to check the workflow name

* #9 Trying a different approach to reuse the other workflows in the release workflow

* #9 Disabled linux arm builds

* #9 disabled build for linux 386

* #9 removed s390x arch as it fails

* #9 removed the ppc64le arch because of failures

* #9: Removed riscv64 arch

* #9: Tried to fit a big number into uint32 on 32bit systems

* #9: fixed the cmd

* #9: fixed linting

* #9: Removed 386 as a arch target

* #9: ignored win arm64 pair

* #9: removed openbsd because of netpoll issues

* #9 Removed win from the OS target

* #9: try to force it release things

* #9: Fixed the token assignment

* #9: Added images and make commands to build them

* #9: Specified the linux as the target OS to fix issues with binary

* #9: Publishing the latest tags

* #9: completed the release workflows for images

* #9: disabled login into ghcr temporarily

* #9 commented more steps to speed up testing

* #9 exposing more info & change the working dir

* #9 using working directory to check out the right path

* #9: trying to fix the build time to keep the same in bins and images

* #9: Fixing the empty date

* #9 trying to fix the build time

* #9 fixing the ref

* #9 Trying to push images to GHCR

* #9 removed unneeded deps

* #9 Uncommented announcements on new releases

* #9: Passing Discord secrets to goreleaser

* #9: Added the basic homebrew tap setup

* #9 Made sure releases happen on the main branch only

* #9: Trying to use the deployment key to update the brew tap
- Made sure it's not possible to override the required fields by nil values accidentally by misformatting the config file
- used github.com/go-playground/validator/v10 for config validation
- created custom validation errors
- Made sure router and model IDs are unique
- Made sure there is at least one lang router configured
- Made sure that each router has at least one model configured
- Warn users in case there is only one model in the router's pool
* #41: Exposed the basic HTTP server configs

* #41: Added the link to hertz configs
* πŸ“ Updated the installation methods

* πŸ“ Using the demo repo as a preferred quickest way to get started
* #81: Update request schema so a model can be specified

* #81: Add model field to JSON payload

* #81: refactor getPayload function

* #81: lint

* #81: Refactor Chat function to support message override, add back pointer

* #81: add docs

---------

Co-authored-by: Max <[email protected]>
* πŸ“ #104 Added the marketecture

* #104 Added the discord chat badge
- Normalize response latency by response token count 
- renamed TokenCount to TokenUsage
* 🧹 Actualized links everywhere
Copy link

codecov bot commented Jan 31, 2024

Codecov Report

Attention: 5 lines in your changes are missing coverage. Please review.

Comparison is base (2c8ca01) 71.76% compared to head (4a38d70) 71.42%.

Files Patch % Lines
pkg/routers/router.go 16.66% 4 Missing and 1 partial ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #115      +/-   ##
==========================================
- Coverage   71.76%   71.42%   -0.34%     
==========================================
  Files          34       34              
  Lines        1675     1680       +5     
==========================================
- Hits         1202     1200       -2     
- Misses        409      415       +6     
- Partials       64       65       +1     

β˜” View full report in Codecov by Sentry.
πŸ“’ Have feedback on the report? Share it here.

@roma-glushko roma-glushko merged commit b02c949 into main Jan 31, 2024
14 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants