Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
杨图强
ewaytek-deepseek
Commits
0487b6d5
Commit
0487b6d5
authored
Aug 28, 2025
by
何处是我家
Browse files
提交
parents
Changes
148
Hide whitespace changes
Inline
Side-by-side
ewaytek-deepseek-web/src/main/java/com/ewaytek/deepseek/doadmin/dto/doubao/Delta.java
0 → 100644
View file @
0487b6d5
package
com.ewaytek.deepseek.doadmin.dto.doubao
;
import
lombok.Data
;
/**
* @author yangtq
* @date 2025/4/18
*/
@Data
public
class
Delta
{
private
String
role
;
private
String
content
;
}
ewaytek-deepseek-web/src/main/java/com/ewaytek/deepseek/doadmin/dto/doubao/DoubaoChatDTO.java
0 → 100644
View file @
0487b6d5
package
com.ewaytek.deepseek.doadmin.dto.doubao
;
import
lombok.Data
;
import
java.util.List
;
/**
* @author yangtq
* @date 2025/4/18
*/
@Data
public
class
DoubaoChatDTO
{
private
Boolean
stream
;
private
Float
temperature
;
private
Integer
maxTokens
;
private
String
model
;
private
Float
top_p
;
private
List
<
DoubaoChatMsgDTO
>
messages
;
private
stream_options
stream_options
;
@Data
public
class
stream_options
{
private
Boolean
include_usage
=
true
;
}
}
ewaytek-deepseek-web/src/main/java/com/ewaytek/deepseek/doadmin/dto/doubao/DoubaoChatMsgDTO.java
0 → 100644
View file @
0487b6d5
package
com.ewaytek.deepseek.doadmin.dto.doubao
;
import
lombok.Data
;
/**
* @author yangtq
* @date 2025/4/18
*/
@Data
public
class
DoubaoChatMsgDTO
{
private
String
role
;
private
String
content
;
}
ewaytek-deepseek-web/src/main/java/com/ewaytek/deepseek/doadmin/dto/doubao/DoubaoChatResponseDTO.java
0 → 100644
View file @
0487b6d5
package
com.ewaytek.deepseek.doadmin.dto.doubao
;
import
lombok.Data
;
import
java.util.List
;
/**
* @author yangtq
* @date 2025/4/18
*/
@Data
public
class
DoubaoChatResponseDTO
{
private
String
id
;
private
String
object
;
private
List
<
Choices
>
choices
;
private
String
model
;
private
Long
created
;
private
Usage
usage
;
}
ewaytek-deepseek-web/src/main/java/com/ewaytek/deepseek/doadmin/dto/doubao/Usage.java
0 → 100644
View file @
0487b6d5
package
com.ewaytek.deepseek.doadmin.dto.doubao
;
import
lombok.Data
;
/**
* @author yangtq
* @date 2025/4/18
*/
@Data
public
class
Usage
{
private
Integer
completion_tokens
;
private
Integer
prompt_tokens
;
private
Integer
total_tokens
;
}
ewaytek-deepseek-web/src/main/java/com/ewaytek/deepseek/doadmin/vo/DifyAudiVO.java
0 → 100644
View file @
0487b6d5
package
com.ewaytek.deepseek.doadmin.vo
;
import
lombok.Data
;
/**
* @author yangtq
* @date 2025/4/1
*/
@Data
public
class
DifyAudiVO
{
/**
* 回答内容
*/
private
String
context
;
/**
* 音频名称
*/
private
String
name
;
}
ewaytek-deepseek-web/src/main/java/com/ewaytek/deepseek/doadmin/vo/MessageVO.java
0 → 100644
View file @
0487b6d5
package
com.ewaytek.deepseek.doadmin.vo
;
import
lombok.Data
;
import
java.util.List
;
/**
* @author yangtq
* @date 2025/2/21
*/
@Data
public
class
MessageVO
{
private
String
id
;
private
String
created
;
private
String
model
;
private
String
object
;
private
List
<
Choices
>
choices
;
@Data
public
class
Choices
{
private
String
index
;
private
String
finish_reason
;
private
Message
message
;
}
@Data
public
class
Message
{
private
String
content
;
private
String
role
;
}
}
ewaytek-deepseek-web/src/main/java/com/ewaytek/deepseek/doadmin/vo/dify/BlockingVO.java
0 → 100644
View file @
0487b6d5
package
com.ewaytek.deepseek.doadmin.vo.dify
;
import
com.fasterxml.jackson.annotation.JsonProperty
;
import
lombok.Data
;
import
java.util.List
;
/**
* @author yangtq
* @date 2025/2/26
*/
@Data
public
class
BlockingVO
{
private
String
id
;
//任务 ID,用于请求跟踪和下方的停止响应接口
@JsonProperty
(
"task_id"
)
private
String
taskId
;
private
String
event
;
//LLM 返回文本块内容
private
String
answer
;
@JsonProperty
(
"message_id"
)
private
String
messageId
;
@JsonProperty
(
"conversation_id"
)
private
String
conversationId
;
private
String
mode
;
}
ewaytek-deepseek-web/src/main/java/com/ewaytek/deepseek/doadmin/vo/dify/ConversationsVO.java
0 → 100644
View file @
0487b6d5
package
com.ewaytek.deepseek.doadmin.vo.dify
;
import
lombok.Data
;
import
java.util.List
;
/**
* @author yangtq
* @date 2025/2/25
*/
@Data
public
class
ConversationsVO
{
private
Long
limit
;
private
String
hasMore
;
private
List
<
ConversationInfoVO
>
data
;
@Data
public
class
ConversationInfoVO
{
private
String
id
;
private
String
name
;
private
String
status
;
}
}
ewaytek-deepseek-web/src/main/java/com/ewaytek/deepseek/doadmin/vo/dify/DifyBlockingVO.java
0 → 100644
View file @
0487b6d5
package
com.ewaytek.deepseek.doadmin.vo.dify
;
import
com.ewaytek.deepseek.doadmin.dto.dify.DifyResponseDTO
;
import
com.fasterxml.jackson.annotation.JsonIgnoreProperties
;
import
com.fasterxml.jackson.annotation.JsonProperty
;
import
kotlin.Metadata
;
import
lombok.Data
;
/**
* @author yangtq
* @date 2025/2/25
*/
@Data
@JsonIgnoreProperties
(
ignoreUnknown
=
true
)
public
class
DifyBlockingVO
extends
DifyResponseDTO
{
/**App 模式,固定为 chat*/
private
String
mode
=
"chat"
;
/**完整回复内容*/
/** LLM 返回文本全部内容*/
private
String
answer
;
@JsonProperty
(
"task_id"
)
private
String
taskId
;
/**元数据*/
private
MetadataVO
metadata
;
}
ewaytek-deepseek-web/src/main/java/com/ewaytek/deepseek/doadmin/vo/dify/DifyChatVO.java
0 → 100644
View file @
0487b6d5
package
com.ewaytek.deepseek.doadmin.vo.dify
;
import
com.fasterxml.jackson.annotation.JsonIgnoreProperties
;
import
com.fasterxml.jackson.annotation.JsonProperty
;
import
lombok.Data
;
import
java.util.List
;
import
java.util.Map
;
/**
* dify聊天请求体
* @author yangtq
* @date 2025/2/25
*/
@Data
@JsonIgnoreProperties
(
ignoreUnknown
=
true
)
public
class
DifyChatVO
{
/**
* 输入提问内容
*/
private
String
query
;
/**
* (选填)允许传入 App 定义的各变量值
*/
private
Map
<
String
,
String
>
inputs
;
/**
* 回复模式:streaming流式模式,blocking阻塞模式
*/
@JsonProperty
(
"response_mode"
)
private
String
responseMode
;
/**
* (选填)会话id,需要基于之前的聊天记录继续对话,必须传之前消息的 conversation_id
* */
@JsonProperty
(
"conversation_id"
)
private
String
conversationId
;
/**
* 用户标识,用于定义终端用户的身份,方便检索、统计。 由开发者定义规则,需保证用户标识在应用内唯一。
* */
private
String
user
=
""
;
/**
* (选填)自动生成标题,默认 false。 可通过调用会话重命名接口并设置 auto_generate 为 true 实现异步生成标题
* */
@JsonProperty
(
"autoGenerate_name"
)
private
boolean
autoGenerateName
=
false
;
private
List
<
UploadFile
>
files
;
@Data
public
class
UploadFile
{
/**
* 支持类型:图片 image(目前仅支持图片格式)
* */
private
String
type
=
"image"
;
/**
* remote_url: 图片地址
* local_file: 上传文件
* */
@JsonProperty
(
"transfer_method"
)
private
String
transferMethod
;
/**
*
* */
private
String
url
;
/**
* 上传文件 ID。(仅当传递方式为 local_file 时)
* */
@JsonProperty
(
"upload_file_id"
)
private
String
uploadFileId
;
}
}
ewaytek-deepseek-web/src/main/java/com/ewaytek/deepseek/doadmin/vo/dify/DifyStreamVO.java
0 → 100644
View file @
0487b6d5
package
com.ewaytek.deepseek.doadmin.vo.dify
;
import
com.ewaytek.deepseek.doadmin.dto.dify.DifyResponseDTO
;
import
com.fasterxml.jackson.annotation.JsonIgnoreProperties
;
import
com.fasterxml.jackson.annotation.JsonProperty
;
import
kotlin.Metadata
;
import
lombok.Data
;
import
java.util.List
;
/**
* 流式消息时返回对象
* @author yangtq
* @date 2025/2/25
*/
@Data
@JsonIgnoreProperties
(
ignoreUnknown
=
true
)
public
class
DifyStreamVO
extends
DifyResponseDTO
{
//每一轮Agent迭代都会有一个唯一的id
private
String
id
;
//任务 ID,用于请求跟踪和下方的停止响应接口
@JsonProperty
(
"task_id"
)
private
String
taskId
;
//LLM 返回文本块内容
private
String
answer
;
//agent_thought在消息中的位置,如第一轮迭代position为1
private
int
position
;
//agent的思考内容
private
String
thought
;
//工具调用的返回结果
private
String
observation
;
//使用的工具列表,以 ; 分割多个工具
private
String
tool
;
//工具的输入,JSON格式的字符串(object)。如:{"dalle3": {"prompt": "a cute cat"}}
@JsonProperty
(
"tool_input"
)
private
String
toolInput
;
//当前 agent_thought 关联的文件ID
@JsonProperty
(
"message_files"
)
private
List
<
String
>
messageFiles
;
//event: message_file时,文件类型,目前仅为image
private
String
type
;
// (string) 文件归属,user或assistant,该接口返回仅为 assistant
@JsonProperty
(
"belongs_to"
)
private
String
belongsTo
;
//文件访问地址
private
String
url
;
private
MetadataVO
metadata
;
//HTTP 状态码
private
int
status
;
//错误码
private
String
code
;
//错误消息
private
String
message
;
@JsonProperty
(
"from_variable_selector"
)
private
String
fromVariableSelector
;
private
String
files
;
}
ewaytek-deepseek-web/src/main/java/com/ewaytek/deepseek/doadmin/vo/dify/MetadataVO.java
0 → 100644
View file @
0487b6d5
package
com.ewaytek.deepseek.doadmin.vo.dify
;
import
com.fasterxml.jackson.annotation.JsonProperty
;
import
lombok.Data
;
import
java.util.List
;
/**
* @author yangtq
* @date 2025/2/25
*/
@Data
public
class
MetadataVO
{
@JsonProperty
(
"usage"
)
private
Usage
usage
;
@JsonProperty
(
"retriever_resources"
)
private
List
<
RetrieverResources
>
retrieverResources
;
}
ewaytek-deepseek-web/src/main/java/com/ewaytek/deepseek/doadmin/vo/dify/RetrieverResources.java
0 → 100644
View file @
0487b6d5
package
com.ewaytek.deepseek.doadmin.vo.dify
;
import
com.ewaytek.deepseek.common.annotation.Excel
;
import
com.fasterxml.jackson.annotation.JsonProperty
;
import
lombok.Data
;
/**
* @author yangtq
* @date 2025/2/25
*/
@Data
public
class
RetrieverResources
{
//": 1
@JsonProperty
(
"position"
)
@Excel
(
name
=
"消息中的位置"
)
private
int
position
;
//": "101b4c97-fc2e-463c-90b1-5261a4cdcafb",
@JsonProperty
(
"dataset_id"
)
private
String
datasetId
;
//": "iPhone",
@JsonProperty
(
"dataset_name"
)
@Excel
(
name
=
"知识库"
)
private
String
datasetName
;
//": "8dd1ad74-0b5f-4175-b735-7d98bbbb4e00",
@JsonProperty
(
"document_id"
)
private
String
documentId
;
//": "iPhone List",
@Excel
(
name
=
"引用名称"
)
@JsonProperty
(
"document_name"
)
private
String
documentName
;
@JsonProperty
(
"data_source_type"
)
private
String
dataSourceType
;
//": "ed599c7f-2766-4294-9d1d-e5235a61270a",
@JsonProperty
(
"segment_id"
)
private
String
segmentId
;
//": 0.98457545,
@JsonProperty
(
"score"
)
@Excel
(
name
=
"得分"
)
private
String
score
;
//": "\"Model\",\"Release Date\",\"Display Size\",\"Resolution\",\"Processor\",\"RAM\",\"Storage\",\"Camera\",\"Battery\",\"Operating System\"\n\"iPhone 13 Pro Max\",\"September 24, 2021\",\"6.7 inch\",\"1284 x 2778\",\"Hexa-core (2x3.23 GHz Avalanche + 4x1.82 GHz Blizzard)\",\"6 GB\",\"128, 256, 512 GB, 1TB\",\"12 MP\",\"4352 mAh\",\"iOS 15\""
@JsonProperty
(
"content"
)
@Excel
(
name
=
"内容"
)
private
String
content
;
@JsonProperty
(
"retriever_from"
)
private
String
retrieverFrom
;
}
ewaytek-deepseek-web/src/main/java/com/ewaytek/deepseek/doadmin/vo/dify/Usage.java
0 → 100644
View file @
0487b6d5
package
com.ewaytek.deepseek.doadmin.vo.dify
;
import
com.fasterxml.jackson.annotation.JsonProperty
;
import
lombok.Data
;
/**
* @author yangtq
* @date 2025/2/25
*/
@Data
public
class
Usage
{
@JsonProperty
(
"prompt_tokens"
)
private
int
promptTokens
;
@JsonProperty
(
"prompt_unit_price"
)
private
double
promptNnitPrice
;
@JsonProperty
(
"prompt_price_unit"
)
private
double
promptPriceUnit
;
@JsonProperty
(
"prompt_price"
)
private
double
promptPrice
;
@JsonProperty
(
"completion_tokens"
)
private
int
completionTokens
;
@JsonProperty
(
"completion_unit_price"
)
private
double
completionUnitPrice
;
//": "0.002",
@JsonProperty
(
"completion_price_unit"
)
private
double
completionPriceUnit
;
//": "0.001",
@JsonProperty
(
"completion_price"
)
private
double
completionPrice
;
//": "0.0002560",
@JsonProperty
(
"total_tokens"
)
private
int
totalTokens
;
//": 1161,
@JsonProperty
(
"total_price"
)
private
double
totalPrice
;
//": "0.0012890",
@JsonProperty
(
"currency"
)
private
String
currency
=
"USD"
;
@JsonProperty
(
"latency"
)
private
double
latency
;
}
ewaytek-deepseek-web/src/main/java/com/ewaytek/deepseek/doadmin/vo/dify/workflows/WorkflowsExecVO.java
0 → 100644
View file @
0487b6d5
package
com.ewaytek.deepseek.doadmin.vo.dify.workflows
;
import
com.ewaytek.deepseek.common.annotation.Excel
;
import
lombok.Data
;
import
java.util.List
;
/**
* @author yangtq
* @date 2025/3/6
*/
@Data
public
class
WorkflowsExecVO
{
@Excel
(
name
=
"问题"
)
private
String
question
;
@Excel
(
name
=
"标准答案(知识库)"
)
private
String
standard
;
/**
* 相似问题回复
*/
@Excel
(
name
=
"大模型组织答案"
)
private
String
answer
;
@Excel
(
name
=
"工作流标问输入问题"
)
private
String
question1
;
@Excel
(
name
=
"工作流标问答案"
)
private
List
<
Workflows
>
workflowsList
;
@Excel
(
name
=
"运行时间"
)
private
String
time
;
@Data
public
static
class
Workflows
{
@Excel
(
name
=
"可信度"
,
cellType
=
Excel
.
ColumnType
.
NUMERIC
)
private
String
reliability
;
@Excel
(
name
=
"回归标准答案"
)
private
String
answer
;
}
}
ewaytek-deepseek-web/src/main/java/com/ewaytek/deepseek/service/AiChatService.java
0 → 100644
View file @
0487b6d5
package
com.ewaytek.deepseek.service
;
import
com.ewaytek.deepseek.common.bean.base.ApiResponse
;
import
com.ewaytek.deepseek.doadmin.dto.MessageDTO
;
import
com.ewaytek.deepseek.doadmin.vo.MessageVO
;
import
com.ewaytek.deepseek.doadmin.vo.dify.DifyChatVO
;
import
com.fasterxml.jackson.core.JsonProcessingException
;
import
reactor.core.publisher.Flux
;
import
java.util.List
;
import
java.util.Map
;
public
interface
AiChatService
{
Flux
<
String
>
chat
(
List
<
Map
<
String
,
String
>>
question
);
ApiResponse
<
MessageVO
>
msgChat
(
List
<
MessageDTO
>
messages
);
}
ewaytek-deepseek-web/src/main/java/com/ewaytek/deepseek/service/dify/DifyApi.java
0 → 100644
View file @
0487b6d5
package
com.ewaytek.deepseek.service.dify
;
import
com.ewaytek.deepseek.doadmin.vo.dify.DifyChatVO
;
import
com.ewaytek.deepseek.doadmin.vo.dify.DifyStreamVO
;
import
io.reactivex.Single
;
import
retrofit2.http.Body
;
import
retrofit2.http.POST
;
/**
* @author yangtq
* @date 2025/2/25
*/
public
interface
DifyApi
{
/**
* 发送对话消息
*
* @param difyChatVO chat completion
* @return 返回答案
*/
@POST
(
"chat-messages"
)
Single
<
DifyStreamVO
>
chatMessages
(
@Body
DifyChatVO
difyChatVO
);
}
ewaytek-deepseek-web/src/main/java/com/ewaytek/deepseek/service/dify/DifyAudioChatService.java
0 → 100644
View file @
0487b6d5
package
com.ewaytek.deepseek.service.dify
;
import
org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitter
;
import
java.io.InputStream
;
import
java.io.OutputStream
;
/**
* @author yangtq
* @date 2025/3/28
*/
public
interface
DifyAudioChatService
{
void
systemChatAudio
(
InputStream
inputStream
,
String
text
,
OutputStream
emitter
)
throws
Exception
;
void
systemChatAudioFlie
(
InputStream
inputStream
,
String
context
,
ResponseBodyEmitter
emitter
)
throws
Exception
;
}
ewaytek-deepseek-web/src/main/java/com/ewaytek/deepseek/service/dify/DifyChatService.java
0 → 100644
View file @
0487b6d5
package
com.ewaytek.deepseek.service.dify
;
import
com.ewaytek.deepseek.common.bean.base.ApiResponse
;
import
com.ewaytek.deepseek.doadmin.dto.dify.DIfyImportVerifyDTO
;
import
com.ewaytek.deepseek.doadmin.dto.dify.DifyChatBlockIngDTO
;
import
com.ewaytek.deepseek.doadmin.dto.dify.DifyChatDTO
;
import
com.ewaytek.deepseek.doadmin.vo.dify.ConversationsVO
;
import
com.ewaytek.deepseek.doadmin.vo.dify.DifyChatVO
;
import
com.fasterxml.jackson.core.JsonProcessingException
;
import
org.springframework.web.multipart.MultipartFile
;
import
org.springframework.web.servlet.mvc.method.annotation.ResponseBodyEmitter
;
import
reactor.core.publisher.Flux
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.IOException
;
import
java.util.List
;
import
java.util.concurrent.ExecutionException
;
/**
* @author yangtq
* @date 2025/2/25
*/
public
interface
DifyChatService
{
/**
* AI陪聊
* @param difyChatVO
* @return
*/
ResponseBodyEmitter
sseChatPrompt
(
DifyChatVO
difyChatVO
);
ApiResponse
<
List
<
ConversationsVO
.
ConversationInfoVO
>>
conversations
(
Integer
limit
,
Boolean
pinned
);
void
importVerify2
(
HttpServletRequest
request
,
HttpServletResponse
response
,
MultipartFile
file
)
throws
IOException
,
InterruptedException
;
DIfyImportVerifyDTO
processBatch
(
DIfyImportVerifyDTO
dto
)
throws
JsonProcessingException
;
ApiResponse
importVerify
(
MultipartFile
file
)
throws
IOException
,
InterruptedException
,
ExecutionException
;
ApiResponse
importVerify3
(
MultipartFile
file
)
throws
IOException
,
InterruptedException
,
ExecutionException
;
}
Prev
1
2
3
4
5
6
7
8
Next
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