This commit is contained in:
WangBooth 2024-01-01 17:52:20 +08:00 committed by GitHub
commit 1596751835
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 31 additions and 3 deletions

View File

@ -244,6 +244,7 @@ func init() {
Parent: nil,
},
{
Id: "gpt-4-vision-preview",
Object: "model",
Created: 1699593571,

View File

@ -48,6 +48,7 @@ func init() {
}
func relayTextHelper(c *gin.Context, relayMode int) *OpenAIErrorWithStatusCode {
channelType := c.GetInt("channel")
channelId := c.GetInt("channel_id")
tokenId := c.GetInt("token_id")
@ -130,6 +131,11 @@ func relayTextHelper(c *gin.Context, relayMode int) *OpenAIErrorWithStatusCode {
if c.GetString("base_url") != "" {
baseURL = c.GetString("base_url")
}
Organization := ""
if c.GetString("openai_organization") != "" {
Organization = c.GetString("openai_organization")
}
fullRequestURL := getFullRequestURL(baseURL, requestURL, channelType)
switch apiType {
case APITypeOpenAI:
@ -368,6 +374,9 @@ func relayTextHelper(c *gin.Context, relayMode int) *OpenAIErrorWithStatusCode {
req.Header.Set("HTTP-Referer", "https://github.com/songquanpeng/one-api")
req.Header.Set("X-Title", "One API")
}
if Organization != "" {
req.Header.Set("OpenAI-Organization", Organization)
}
}
case APITypeClaude:
req.Header.Set("x-api-key", apiKey)

View File

@ -82,6 +82,7 @@ func Distribute() func(c *gin.Context) {
c.Set("model_mapping", channel.GetModelMapping())
c.Request.Header.Set("Authorization", fmt.Sprintf("Bearer %s", channel.Key))
c.Set("base_url", channel.GetBaseURL())
c.Set("openai_organization", channel.Organization)
switch channel.Type {
case common.ChannelTypeAzure:
c.Set("api_version", channel.Other)

View File

@ -1,8 +1,9 @@
package model
import (
"gorm.io/gorm"
"one-api/common"
"gorm.io/gorm"
)
type Channel struct {
@ -24,6 +25,7 @@ type Channel struct {
UsedQuota int64 `json:"used_quota" gorm:"bigint;default:0"`
ModelMapping *string `json:"model_mapping" gorm:"type:varchar(1024);default:''"`
Priority *int64 `json:"priority" gorm:"bigint;default:0"`
Organization string `json:"openai_organization" gorm:"column:openai_organization;default:''"`
}
func GetAllChannels(startIdx int, num int, selectAll bool) ([]*Channel, error) {

View File

@ -1,8 +1,8 @@
import React, { useEffect, useState } from 'react';
import { Button, Form, Header, Input, Message, Segment } from 'semantic-ui-react';
import { useNavigate, useParams } from 'react-router-dom';
import { API, showError, showInfo, showSuccess, verifyJSON } from '../../helpers';
import { Button, Form, Header, Input, Message, Segment } from 'semantic-ui-react';
import { CHANNEL_OPTIONS } from '../../constants';
import { API, showError, showInfo, showSuccess, verifyJSON } from '../../helpers';
const MODEL_MAPPING_EXAMPLE = {
'gpt-3.5-turbo-0301': 'gpt-3.5-turbo',
@ -41,6 +41,7 @@ const EditChannel = () => {
type: 1,
key: '',
base_url: '',
openai_organization: '',
other: '',
model_mapping: '',
models: [],
@ -325,6 +326,20 @@ const EditChannel = () => {
options={groupOptions}
/>
</Form.Field>
{
inputs.type === 1 && (
<Form.Field>
<Form.Input
label='组织ID'
name='openai_organization'
placeholder={'请输入 OpenAI Organization'}
onChange={handleInputChange}
value={inputs.openai_organization}
autoComplete='new-password'
/>
</Form.Field>
)
}
{
inputs.type === 18 && (
<Form.Field>