Kaynağa Gözat

Merge pull request #125 from wozulong/main

fix: openai_organization not working
Calcium-Ion 2 yıl önce
ebeveyn
işleme
0da49fa446

+ 3 - 0
middleware/distributor.go

@@ -155,6 +155,9 @@ func Distribute() func(c *gin.Context) {
 				if channel.AutoBan != nil && *channel.AutoBan == 0 {
 					ban = false
 				}
+				if nil != channel.OpenAIOrganization {
+					c.Set("channel_organization", *channel.OpenAIOrganization)
+				}
 				c.Set("auto_ban", ban)
 				c.Set("model_mapping", channel.GetModelMapping())
 				c.Request.Header.Set("Authorization", fmt.Sprintf("Bearer %s", channel.Key))

+ 3 - 0
relay/channel/openai/adaptor.go

@@ -49,6 +49,9 @@ func (a *Adaptor) SetupRequestHeader(c *gin.Context, req *http.Request, info *re
 		req.Header.Set("api-key", info.ApiKey)
 		return nil
 	}
+	if info.ChannelType == common.ChannelTypeOpenAI && "" != info.Organization {
+		req.Header.Set("OpenAI-Organization", info.Organization)
+	}
 	req.Header.Set("Authorization", "Bearer "+info.ApiKey)
 	//if info.ChannelType == common.ChannelTypeOpenRouter {
 	//	req.Header.Set("HTTP-Referer", "https://github.com/songquanpeng/one-api")

+ 2 - 0
relay/common/relay_info.go

@@ -24,6 +24,7 @@ type RelayInfo struct {
 	ApiVersion        string
 	PromptTokens      int
 	ApiKey            string
+	Organization      string
 	BaseUrl           string
 }
 
@@ -52,6 +53,7 @@ func GenRelayInfo(c *gin.Context) *RelayInfo {
 		ApiType:        apiType,
 		ApiVersion:     c.GetString("api_version"),
 		ApiKey:         strings.TrimPrefix(c.Request.Header.Get("Authorization"), "Bearer "),
+		Organization:   c.GetString("channel_organization"),
 	}
 	if info.BaseUrl == "" {
 		info.BaseUrl = common.ChannelBaseURLs[channelType]