Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
16 changes: 15 additions & 1 deletion main.go
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
package main

import (
"fmt"
"github.com/diemus/azure-openai-proxy/pkg/azure"
"github.com/diemus/azure-openai-proxy/pkg/openai"
"github.com/gin-gonic/gin"
"io"
"log"
"net/http"
"os"
Expand All @@ -12,6 +14,7 @@ import (
var (
Address = "0.0.0.0:8080"
ProxyMode = "azure"
LogPath = "log/proxy.log"
)

func init() {
Expand All @@ -22,6 +25,17 @@ func init() {
if v := os.Getenv("AZURE_OPENAI_PROXY_MODE"); v != "" {
ProxyMode = v
}
if v := os.Getenv("AZURE_OPENAI_PROXY_LOG_PATH"); v != "" {
LogPath = v
}
logFile, err := os.OpenFile(LogPath, os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0644)
if err != nil {
fmt.Println("open log file failed, err:", err)
return
}
multi := io.MultiWriter(logFile, os.Stdout)
log.SetOutput(multi)
log.SetFlags(log.Llongfile | log.Ldate | log.Ltime)
log.Printf("loading azure openai proxy address: %s", Address)
log.Printf("loading azure openai proxy mode: %s", ProxyMode)
}
Expand All @@ -39,7 +53,7 @@ func main() {
router.Any("*path", handleOpenAIProxy)
}

router.Run(Address)
_ = router.Run(Address)

}

Expand Down
6 changes: 4 additions & 2 deletions pkg/azure/proxy.go
Original file line number Diff line number Diff line change
Expand Up @@ -76,11 +76,12 @@ func NewOpenAIReverseProxy() *httputil.ReverseProxy {
// Replace the Bearer field in the Authorization header with api-key
token := ""

tokenFromReq := strings.ReplaceAll(req.Header.Get("Authorization"), "Bearer ", "")
// use the token from the environment variable if it is set
if AzureOpenAIToken != "" {
token = AzureOpenAIToken
} else {
token = strings.ReplaceAll(req.Header.Get("Authorization"), "Bearer ", "")
token = tokenFromReq
}

req.Header.Set("api-key", token)
Expand All @@ -99,7 +100,8 @@ func NewOpenAIReverseProxy() *httputil.ReverseProxy {
query.Add("api-version", AzureOpenAIAPIVersion)
req.URL.RawQuery = query.Encode()

log.Printf("proxying request [%s] %s -> %s", model, originURL, req.URL.String())
log.Printf("user identity: [%s], proxying request [%s] %s -> %s",
tokenFromReq, model, originURL, req.URL.String())
}
return &httputil.ReverseProxy{Director: director}
}
Expand Down