Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
phsl
/
new-api
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Members
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
02e9dd17
authored
Sep 11, 2024
by
Yan Tau
Committed by
GitHub
Sep 11, 2024
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'Calcium-Ion:main' into main
parents
94b1fc85
17c8ba78
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
20 additions
and
10 deletions
+20
-10
README.md
+1
-1
common/constants.go
+3
-0
dto/text_response.go
+1
-0
relay/channel/claude/relay-claude.go
+1
-0
relay/channel/cohere/dto.go
+1
-0
relay/channel/cohere/relay-cohere.go
+4
-0
service/token_counter.go
+1
-1
web/src/components/TokensTable.js
+8
-8
No files found.
README.md
View file @
02e9dd17
...
...
@@ -66,7 +66,7 @@
-
`GET_MEDIA_TOKEN_NOT_STREAM`
:是否在非流(
`stream=false`
)情况下统计图片token,默认为
`true`
。
-
`UPDATE_TASK`
:是否更新异步任务(Midjourney、Suno),默认为
`true`
,关闭后将不会更新任务进度。
-
`GEMINI_MODEL_MAP`
:Gemini模型指定版本(v1/v1beta),使用“模型:版本”指定,","分隔,例如:-e GEMINI_MODEL_MAP="gemini-1.5-pro-latest:v1beta,gemini-1.5-pro-001:v1beta",为空则使用默认配置
-
`COHERE_SAFETY_SETTING`
:Cohere模型
[
安全设置
](
https://docs.cohere.com/docs/safety-modes#overview
)
,可选值为
`NONE`
,
`CONTEXTUAL`
,
`STRICT`
,默认为
`NONE`
。
## 部署
### 部署要求
-
本地数据库(默认):SQLite(Docker 部署默认使用 SQLite,必须挂载
`/data`
目录到宿主机)
...
...
common/constants.go
View file @
02e9dd17
...
...
@@ -112,6 +112,9 @@ var RelayTimeout = GetEnvOrDefault("RELAY_TIMEOUT", 0) // unit is second
var
GeminiSafetySetting
=
GetEnvOrDefaultString
(
"GEMINI_SAFETY_SETTING"
,
"BLOCK_NONE"
)
// https://docs.cohere.com/docs/safety-modes Type; NONE/CONTEXTUAL/STRICT
var
CohereSafetySetting
=
GetEnvOrDefaultString
(
"COHERE_SAFETY_SETTING"
,
"NONE"
)
const
(
RequestIdKey
=
"X-Oneapi-Request-Id"
)
...
...
dto/text_response.go
View file @
02e9dd17
...
...
@@ -34,6 +34,7 @@ type OpenAITextResponseChoice struct {
type
OpenAITextResponse
struct
{
Id
string
`json:"id"`
Model
string
`json:"model"`
Object
string
`json:"object"`
Created
int64
`json:"created"`
Choices
[]
OpenAITextResponseChoice
`json:"choices"`
...
...
relay/channel/claude/relay-claude.go
View file @
02e9dd17
...
...
@@ -395,6 +395,7 @@ func ResponseClaude2OpenAI(reqMode int, claudeResponse *ClaudeResponse) *dto.Ope
if
len
(
tools
)
>
0
{
choice
.
Message
.
ToolCalls
=
tools
}
fullTextResponse
.
Model
=
claudeResponse
.
Model
choices
=
append
(
choices
,
choice
)
fullTextResponse
.
Choices
=
choices
return
&
fullTextResponse
...
...
relay/channel/cohere/dto.go
View file @
02e9dd17
...
...
@@ -8,6 +8,7 @@ type CohereRequest struct {
Message
string
`json:"message"`
Stream
bool
`json:"stream"`
MaxTokens
int
`json:"max_tokens"`
SafetyMode
string
`json:"safety_mode,omitempty"`
}
type
ChatHistory
struct
{
...
...
relay/channel/cohere/relay-cohere.go
View file @
02e9dd17
...
...
@@ -23,6 +23,9 @@ func requestOpenAI2Cohere(textRequest dto.GeneralOpenAIRequest) *CohereRequest {
Stream
:
textRequest
.
Stream
,
MaxTokens
:
textRequest
.
GetMaxTokens
(),
}
if
common
.
CohereSafetySetting
!=
"NONE"
{
cohereReq
.
SafetyMode
=
common
.
CohereSafetySetting
}
if
cohereReq
.
MaxTokens
==
0
{
cohereReq
.
MaxTokens
=
4000
}
...
...
@@ -44,6 +47,7 @@ func requestOpenAI2Cohere(textRequest dto.GeneralOpenAIRequest) *CohereRequest {
})
}
}
return
&
cohereReq
}
...
...
service/token_counter.go
View file @
02e9dd17
...
...
@@ -52,7 +52,7 @@ func InitTokenEncoders() {
}
func
getModelDefaultTokenEncoder
(
model
string
)
*
tiktoken
.
Tiktoken
{
if
strings
.
HasPrefix
(
model
,
"gpt-4o"
)
{
if
strings
.
HasPrefix
(
model
,
"gpt-4o"
)
||
strings
.
HasPrefix
(
model
,
"chatgpt-4o"
)
{
return
cl200kTokenEncoder
}
return
defaultTokenEncoder
...
...
web/src/components/TokensTable.js
View file @
02e9dd17
...
...
@@ -225,14 +225,14 @@ const TokensTable = () => {
onOpenLink
(
'next-mj'
,
record
.
key
);
},
},
{
node
:
'item'
,
key
:
'lobe'
,
name
:
'Lobe Chat'
,
onClick
:
()
=>
{
onOpenLink
(
'lobe'
,
record
.
key
);
},
},
//
{
//
node: 'item',
//
key: 'lobe',
//
name: 'Lobe Chat',
//
onClick: () => {
//
onOpenLink('lobe', record.key);
//
},
//
},
{
node
:
'item'
,
key
:
'ama'
,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment