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
d09b99c1
authored
Aug 22, 2025
by
Calcium-Ion
Committed by
GitHub
Aug 22, 2025
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #1606 from funnycups/patch-1
fix: prompt calculation
parents
2eae3a61
2f176cff
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
12 additions
and
6 deletions
+12
-6
controller/relay.go
+2
-0
relay/channel/openai/relay-openai.go
+10
-6
No files found.
controller/relay.go
View file @
d09b99c1
...
@@ -128,6 +128,8 @@ func Relay(c *gin.Context, relayFormat types.RelayFormat) {
...
@@ -128,6 +128,8 @@ func Relay(c *gin.Context, relayFormat types.RelayFormat) {
return
return
}
}
relayInfo
.
SetPromptTokens
(
tokens
)
priceData
,
err
:=
helper
.
ModelPriceHelper
(
c
,
relayInfo
,
tokens
,
meta
)
priceData
,
err
:=
helper
.
ModelPriceHelper
(
c
,
relayInfo
,
tokens
,
meta
)
if
err
!=
nil
{
if
err
!=
nil
{
newAPIError
=
types
.
NewError
(
err
,
types
.
ErrorCodeModelPriceError
)
newAPIError
=
types
.
NewError
(
err
,
types
.
ErrorCodeModelPriceError
)
...
...
relay/channel/openai/relay-openai.go
View file @
d09b99c1
...
@@ -197,22 +197,26 @@ func OpenaiHandler(c *gin.Context, info *relaycommon.RelayInfo, resp *http.Respo
...
@@ -197,22 +197,26 @@ func OpenaiHandler(c *gin.Context, info *relaycommon.RelayInfo, resp *http.Respo
forceFormat
=
true
forceFormat
=
true
}
}
if
simpleResponse
.
Usage
.
TotalTokens
==
0
||
(
simpleResponse
.
Usage
.
PromptTokens
==
0
&&
simpleResponse
.
Usage
.
CompletionTokens
==
0
)
{
usageModified
:=
false
completionTokens
:=
0
if
simpleResponse
.
Usage
.
PromptTokens
==
0
{
for
_
,
choice
:=
range
simpleResponse
.
Choices
{
completionTokens
:=
simpleResponse
.
Usage
.
CompletionTokens
ctkm
:=
service
.
CountTextToken
(
choice
.
Message
.
StringContent
()
+
choice
.
Message
.
ReasoningContent
+
choice
.
Message
.
Reasoning
,
info
.
UpstreamModelName
)
if
completionTokens
==
0
{
completionTokens
+=
ctkm
for
_
,
choice
:=
range
simpleResponse
.
Choices
{
ctkm
:=
service
.
CountTextToken
(
choice
.
Message
.
StringContent
()
+
choice
.
Message
.
ReasoningContent
+
choice
.
Message
.
Reasoning
,
info
.
UpstreamModelName
)
completionTokens
+=
ctkm
}
}
}
simpleResponse
.
Usage
=
dto
.
Usage
{
simpleResponse
.
Usage
=
dto
.
Usage
{
PromptTokens
:
info
.
PromptTokens
,
PromptTokens
:
info
.
PromptTokens
,
CompletionTokens
:
completionTokens
,
CompletionTokens
:
completionTokens
,
TotalTokens
:
info
.
PromptTokens
+
completionTokens
,
TotalTokens
:
info
.
PromptTokens
+
completionTokens
,
}
}
usageModified
=
true
}
}
switch
info
.
RelayFormat
{
switch
info
.
RelayFormat
{
case
types
.
RelayFormatOpenAI
:
case
types
.
RelayFormatOpenAI
:
if
forceFormat
{
if
forceFormat
||
usageModified
{
responseBody
,
err
=
common
.
Marshal
(
simpleResponse
)
responseBody
,
err
=
common
.
Marshal
(
simpleResponse
)
if
err
!=
nil
{
if
err
!=
nil
{
return
nil
,
types
.
NewError
(
err
,
types
.
ErrorCodeBadResponseBody
)
return
nil
,
types
.
NewError
(
err
,
types
.
ErrorCodeBadResponseBody
)
...
...
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