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
7e0b2521
authored
May 13, 2025
by
creamlike1024
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
DoRequest
parent
cd8a2f85
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
28 additions
and
37 deletions
+28
-37
relay/channel/coze/adaptor.go
+3
-3
relay/channel/coze/dto.go
+0
-30
relay/channel/coze/relay-coze.go
+25
-4
No files found.
relay/channel/coze/adaptor.go
View file @
7e0b2521
...
...
@@ -42,7 +42,7 @@ func (a *Adaptor) ConvertOpenAIRequest(c *gin.Context, info *common.RelayInfo, r
if
request
==
nil
{
return
nil
,
errors
.
New
(
"request is nil"
)
}
return
convertCozeChatRequest
(
*
request
),
nil
return
convertCozeChatRequest
(
c
,
*
request
),
nil
}
// ConvertOpenAIResponsesRequest implements channel.Adaptor.
...
...
@@ -88,7 +88,7 @@ func (a *Adaptor) DoRequest(c *gin.Context, info *common.RelayInfo, requestBody
time
.
Sleep
(
time
.
Second
*
1
)
}
// 发送获取消息请求
return
channel
.
DoApiRequest
(
a
,
c
,
info
,
requestBody
)
return
getChatDetail
(
a
,
c
,
info
)
}
// DoResponse implements channel.Adaptor.
...
...
@@ -109,7 +109,7 @@ func (a *Adaptor) GetModelList() []string {
// GetRequestURL implements channel.Adaptor.
func
(
a
*
Adaptor
)
GetRequestURL
(
info
*
common
.
RelayInfo
)
(
string
,
error
)
{
return
fmt
.
Sprintf
(
"%s/v3/chat
/message/list
"
,
info
.
BaseUrl
),
nil
return
fmt
.
Sprintf
(
"%s/v3/chat"
,
info
.
BaseUrl
),
nil
}
// Init implements channel.Adaptor.
...
...
relay/channel/coze/dto.go
View file @
7e0b2521
...
...
@@ -2,41 +2,11 @@ package coze
import
"encoding/json"
// type CozeResponse struct {
// Code int `json:"code"`
// Message string `json:"message"`
// Data CozeConversationData `json:"data"`
// Detail CozeConversationData `json:"detail"`
// }
// type CozeConversationData struct {
// Id string `json:"id"`
// CreatedAt int64 `json:"created_at"`
// MetaData json.RawMessage `json:"meta_data"`
// LastSectionId string `json:"last_section_id"`
// }
// type CozeResponseDetail struct {
// Logid string `json:"logid"`
// }
type
CozeError
struct
{
Code
int
`json:"code"`
Message
string
`json:"message"`
}
// type CozeErrorWithStatusCode struct {
// Error CozeError `json:"error"`
// StatusCode int
// LocalError bool
// }
type
CozeRequest
struct
{
BotId
string
`json:"bot_id,omitempty"`
MetaData
json
.
RawMessage
`json:"meta_data,omitempty"`
Messages
[]
CozeEnterMessage
`json:"messages,omitempty"`
}
type
CozeEnterMessage
struct
{
Role
string
`json:"role"`
Type
string
`json:"type,omitempty"`
...
...
relay/channel/coze/relay-coze.go
View file @
7e0b2521
...
...
@@ -13,7 +13,7 @@ import (
"github.com/gin-gonic/gin"
)
func
convertCozeChatRequest
(
request
dto
.
GeneralOpenAIRequest
)
*
Coze
Request
{
func
convertCozeChatRequest
(
c
*
gin
.
Context
,
request
dto
.
GeneralOpenAIRequest
)
*
CozeChat
Request
{
var
messages
[]
CozeEnterMessage
// 将 request的messages的role为user的content转换为CozeMessage
for
_
,
message
:=
range
request
.
Messages
{
...
...
@@ -26,10 +26,12 @@ func convertCozeChatRequest(request dto.GeneralOpenAIRequest) *CozeRequest {
})
}
}
cozeRequest
:=
&
CozeRequest
{
cozeRequest
:=
&
Coze
Chat
Request
{
// TODO: model to botid
BotId
:
"1"
,
Messages
:
messages
,
BotId
:
"1"
,
UserId
:
c
.
GetString
(
"id"
),
AdditionalMessages
:
messages
,
Stream
:
request
.
Stream
,
}
return
cozeRequest
}
...
...
@@ -101,6 +103,25 @@ func checkIfChatComplete(a *Adaptor, c *gin.Context, info *relaycommon.RelayInfo
}
}
func
getChatDetail
(
a
*
Adaptor
,
c
*
gin
.
Context
,
info
*
relaycommon
.
RelayInfo
)
(
*
http
.
Response
,
error
)
{
requestURL
:=
fmt
.
Sprintf
(
"%s/v3/chat/message/list"
,
info
.
BaseUrl
)
requestURL
=
requestURL
+
"?conversation_id="
+
c
.
GetString
(
"coze_conversation_id"
)
+
"&chat_id="
+
c
.
GetString
(
"coze_chat_id"
)
req
,
err
:=
http
.
NewRequest
(
"GET"
,
requestURL
,
nil
)
if
err
!=
nil
{
return
nil
,
fmt
.
Errorf
(
"new request failed: %w"
,
err
)
}
err
=
a
.
SetupRequestHeader
(
c
,
&
req
.
Header
,
info
)
if
err
!=
nil
{
return
nil
,
fmt
.
Errorf
(
"setup request header failed: %w"
,
err
)
}
resp
,
err
:=
doRequest
(
req
,
info
)
if
err
!=
nil
{
return
nil
,
fmt
.
Errorf
(
"do request failed: %w"
,
err
)
}
return
resp
,
nil
}
func
doRequest
(
req
*
http
.
Request
,
info
*
common
.
RelayInfo
)
(
*
http
.
Response
,
error
)
{
var
client
*
http
.
Client
var
err
error
// 声明 err 变量
...
...
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