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
144579e8
authored
Mar 01, 2024
by
1808837298@qq.com
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: 修复智谱GLM-4V流模式异常
parent
eff61d87
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
17 additions
and
13 deletions
+17
-13
relay/channel/openai/adaptor.go
+2
-2
relay/channel/openai/relay-openai.go
+2
-2
relay/channel/zhipu_4v/adaptor.go
+7
-3
relay/channel/zhipu_4v/constants.go
+2
-2
relay/channel/zhipu_4v/dto.go
+1
-1
relay/channel/zhipu_4v/relay-zhipu_v4.go
+1
-1
relay/relay_adaptor.go
+2
-2
No files found.
relay/channel/openai/adaptor.go
View file @
144579e8
...
@@ -71,10 +71,10 @@ func (a *Adaptor) DoRequest(c *gin.Context, info *relaycommon.RelayInfo, request
...
@@ -71,10 +71,10 @@ func (a *Adaptor) DoRequest(c *gin.Context, info *relaycommon.RelayInfo, request
func
(
a
*
Adaptor
)
DoResponse
(
c
*
gin
.
Context
,
resp
*
http
.
Response
,
info
*
relaycommon
.
RelayInfo
)
(
usage
*
dto
.
Usage
,
err
*
dto
.
OpenAIErrorWithStatusCode
)
{
func
(
a
*
Adaptor
)
DoResponse
(
c
*
gin
.
Context
,
resp
*
http
.
Response
,
info
*
relaycommon
.
RelayInfo
)
(
usage
*
dto
.
Usage
,
err
*
dto
.
OpenAIErrorWithStatusCode
)
{
if
info
.
IsStream
{
if
info
.
IsStream
{
var
responseText
string
var
responseText
string
err
,
responseText
=
o
penaiStreamHandler
(
c
,
resp
,
info
.
RelayMode
)
err
,
responseText
=
O
penaiStreamHandler
(
c
,
resp
,
info
.
RelayMode
)
usage
=
service
.
ResponseText2Usage
(
responseText
,
info
.
UpstreamModelName
,
info
.
PromptTokens
)
usage
=
service
.
ResponseText2Usage
(
responseText
,
info
.
UpstreamModelName
,
info
.
PromptTokens
)
}
else
{
}
else
{
err
,
usage
=
o
penaiHandler
(
c
,
resp
,
info
.
PromptTokens
,
info
.
UpstreamModelName
)
err
,
usage
=
O
penaiHandler
(
c
,
resp
,
info
.
PromptTokens
,
info
.
UpstreamModelName
)
}
}
return
return
}
}
...
...
relay/channel/openai/relay-openai.go
View file @
144579e8
...
@@ -16,7 +16,7 @@ import (
...
@@ -16,7 +16,7 @@ import (
"time"
"time"
)
)
func
o
penaiStreamHandler
(
c
*
gin
.
Context
,
resp
*
http
.
Response
,
relayMode
int
)
(
*
dto
.
OpenAIErrorWithStatusCode
,
string
)
{
func
O
penaiStreamHandler
(
c
*
gin
.
Context
,
resp
*
http
.
Response
,
relayMode
int
)
(
*
dto
.
OpenAIErrorWithStatusCode
,
string
)
{
var
responseTextBuilder
strings
.
Builder
var
responseTextBuilder
strings
.
Builder
scanner
:=
bufio
.
NewScanner
(
resp
.
Body
)
scanner
:=
bufio
.
NewScanner
(
resp
.
Body
)
scanner
.
Split
(
func
(
data
[]
byte
,
atEOF
bool
)
(
advance
int
,
token
[]
byte
,
err
error
)
{
scanner
.
Split
(
func
(
data
[]
byte
,
atEOF
bool
)
(
advance
int
,
token
[]
byte
,
err
error
)
{
...
@@ -111,7 +111,7 @@ func openaiStreamHandler(c *gin.Context, resp *http.Response, relayMode int) (*d
...
@@ -111,7 +111,7 @@ func openaiStreamHandler(c *gin.Context, resp *http.Response, relayMode int) (*d
return
nil
,
responseTextBuilder
.
String
()
return
nil
,
responseTextBuilder
.
String
()
}
}
func
o
penaiHandler
(
c
*
gin
.
Context
,
resp
*
http
.
Response
,
promptTokens
int
,
model
string
)
(
*
dto
.
OpenAIErrorWithStatusCode
,
*
dto
.
Usage
)
{
func
O
penaiHandler
(
c
*
gin
.
Context
,
resp
*
http
.
Response
,
promptTokens
int
,
model
string
)
(
*
dto
.
OpenAIErrorWithStatusCode
,
*
dto
.
Usage
)
{
var
textResponse
dto
.
TextResponse
var
textResponse
dto
.
TextResponse
responseBody
,
err
:=
io
.
ReadAll
(
resp
.
Body
)
responseBody
,
err
:=
io
.
ReadAll
(
resp
.
Body
)
if
err
!=
nil
{
if
err
!=
nil
{
...
...
relay/channel/zhipu_
v4
/adaptor.go
→
relay/channel/zhipu_
4v
/adaptor.go
View file @
144579e8
package
zhipu_
v4
package
zhipu_
4v
import
(
import
(
"errors"
"errors"
...
@@ -8,7 +8,9 @@ import (
...
@@ -8,7 +8,9 @@ import (
"net/http"
"net/http"
"one-api/dto"
"one-api/dto"
"one-api/relay/channel"
"one-api/relay/channel"
"one-api/relay/channel/openai"
relaycommon
"one-api/relay/common"
relaycommon
"one-api/relay/common"
"one-api/service"
)
)
type
Adaptor
struct
{
type
Adaptor
struct
{
...
@@ -41,9 +43,11 @@ func (a *Adaptor) DoRequest(c *gin.Context, info *relaycommon.RelayInfo, request
...
@@ -41,9 +43,11 @@ func (a *Adaptor) DoRequest(c *gin.Context, info *relaycommon.RelayInfo, request
func
(
a
*
Adaptor
)
DoResponse
(
c
*
gin
.
Context
,
resp
*
http
.
Response
,
info
*
relaycommon
.
RelayInfo
)
(
usage
*
dto
.
Usage
,
err
*
dto
.
OpenAIErrorWithStatusCode
)
{
func
(
a
*
Adaptor
)
DoResponse
(
c
*
gin
.
Context
,
resp
*
http
.
Response
,
info
*
relaycommon
.
RelayInfo
)
(
usage
*
dto
.
Usage
,
err
*
dto
.
OpenAIErrorWithStatusCode
)
{
if
info
.
IsStream
{
if
info
.
IsStream
{
err
,
usage
=
zhipuStreamHandler
(
c
,
resp
)
var
responseText
string
err
,
responseText
=
openai
.
OpenaiStreamHandler
(
c
,
resp
,
info
.
RelayMode
)
usage
=
service
.
ResponseText2Usage
(
responseText
,
info
.
UpstreamModelName
,
info
.
PromptTokens
)
}
else
{
}
else
{
err
,
usage
=
zhipuHandler
(
c
,
resp
)
err
,
usage
=
openai
.
OpenaiHandler
(
c
,
resp
,
info
.
PromptTokens
,
info
.
UpstreamModelName
)
}
}
return
return
}
}
...
...
relay/channel/zhipu_
v4
/constants.go
→
relay/channel/zhipu_
4v
/constants.go
View file @
144579e8
package
zhipu_
v4
package
zhipu_
4v
var
ModelList
=
[]
string
{
var
ModelList
=
[]
string
{
"glm-4"
,
"glm-4v"
,
"glm-3-turbo"
,
"glm-4"
,
"glm-4v"
,
"glm-3-turbo"
,
}
}
var
ChannelName
=
"zhipu_
v4
"
var
ChannelName
=
"zhipu_
4v
"
relay/channel/zhipu_
v4
/dto.go
→
relay/channel/zhipu_
4v
/dto.go
View file @
144579e8
package
zhipu_
v4
package
zhipu_
4v
import
(
import
(
"one-api/dto"
"one-api/dto"
...
...
relay/channel/zhipu_
v4
/relay-zhipu_v4.go
→
relay/channel/zhipu_
4v
/relay-zhipu_v4.go
View file @
144579e8
package
zhipu_
v4
package
zhipu_
4v
import
(
import
(
"bufio"
"bufio"
...
...
relay/relay_adaptor.go
View file @
144579e8
...
@@ -11,7 +11,7 @@ import (
...
@@ -11,7 +11,7 @@ import (
"one-api/relay/channel/tencent"
"one-api/relay/channel/tencent"
"one-api/relay/channel/xunfei"
"one-api/relay/channel/xunfei"
"one-api/relay/channel/zhipu"
"one-api/relay/channel/zhipu"
"one-api/relay/channel/zhipu_
v4
"
"one-api/relay/channel/zhipu_
4v
"
"one-api/relay/constant"
"one-api/relay/constant"
)
)
...
@@ -38,7 +38,7 @@ func GetAdaptor(apiType int) channel.Adaptor {
...
@@ -38,7 +38,7 @@ func GetAdaptor(apiType int) channel.Adaptor {
case
constant
.
APITypeZhipu
:
case
constant
.
APITypeZhipu
:
return
&
zhipu
.
Adaptor
{}
return
&
zhipu
.
Adaptor
{}
case
constant
.
APITypeZhipu_v4
:
case
constant
.
APITypeZhipu_v4
:
return
&
zhipu_
v4
.
Adaptor
{}
return
&
zhipu_
4v
.
Adaptor
{}
}
}
return
nil
return
nil
}
}
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