Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
Y
yd-ai
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
xingmin
yd-ai
Commits
eb1d736b
Commit
eb1d736b
authored
Apr 23, 2026
by
zhangxingmin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
push
parent
05763af2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
57 additions
and
4 deletions
+57
-4
yd-ai-api/src/main/java/com/yd/ai/api/service/impl/ApiAiStreamServiceImpl.java
+6
-4
yd-ai-api/src/main/java/com/yd/ai/api/service/impl/Main.java
+51
-0
No files found.
yd-ai-api/src/main/java/com/yd/ai/api/service/impl/ApiAiStreamServiceImpl.java
View file @
eb1d736b
...
@@ -75,13 +75,13 @@ public class ApiAiStreamServiceImpl implements ApiAiStreamService {
...
@@ -75,13 +75,13 @@ public class ApiAiStreamServiceImpl implements ApiAiStreamService {
throw
e
;
throw
e
;
}
}
// 正常调用大模型流式接口
// 正常调用大模型流式接口
(使用 Qwen3.6-Plus 模型)
Generation
gen
=
new
Generation
();
Generation
gen
=
new
Generation
();
Message
systemMsg
=
Message
.
builder
().
role
(
Role
.
SYSTEM
.
getValue
()).
content
(
"You are a helpful assistant."
).
build
();
Message
systemMsg
=
Message
.
builder
().
role
(
Role
.
SYSTEM
.
getValue
()).
content
(
"You are a helpful assistant."
).
build
();
Message
userMsg
=
Message
.
builder
().
role
(
Role
.
USER
.
getValue
()).
content
(
question
).
build
();
Message
userMsg
=
Message
.
builder
().
role
(
Role
.
USER
.
getValue
()).
content
(
question
).
build
();
GenerationParam
param
=
GenerationParam
.
builder
()
GenerationParam
param
=
GenerationParam
.
builder
()
.
apiKey
(
"sk-d6551c67cfbe4a759a78dc3625729291"
)
.
apiKey
(
"sk-d6551c67cfbe4a759a78dc3625729291"
)
// 请使用安全的密钥管理方式
.
model
(
"qwen
-plus"
)
.
model
(
"qwen
3.6-plus"
)
// 模型改为 qwen3.6-plus
.
messages
(
Arrays
.
asList
(
systemMsg
,
userMsg
))
.
messages
(
Arrays
.
asList
(
systemMsg
,
userMsg
))
.
resultFormat
(
GenerationParam
.
ResultFormat
.
MESSAGE
)
.
resultFormat
(
GenerationParam
.
ResultFormat
.
MESSAGE
)
.
incrementalOutput
(
true
)
.
incrementalOutput
(
true
)
...
@@ -97,6 +97,7 @@ public class ApiAiStreamServiceImpl implements ApiAiStreamService {
...
@@ -97,6 +97,7 @@ public class ApiAiStreamServiceImpl implements ApiAiStreamService {
log
.
error
(
"InputRequiredException: {}"
,
e
.
getMessage
());
log
.
error
(
"InputRequiredException: {}"
,
e
.
getMessage
());
return
Flux
.
just
(
ServerSentEvent
.
builder
(
"系统错误:输入参数异常"
).
build
());
return
Flux
.
just
(
ServerSentEvent
.
builder
(
"系统错误:输入参数异常"
).
build
());
}
}
// 将 RxJava Flowable 转为 Reactor Flux
// 将 RxJava Flowable 转为 Reactor Flux
return
Flux
.
from
(
flowable
)
return
Flux
.
from
(
flowable
)
.
map
(
result
->
{
.
map
(
result
->
{
...
@@ -104,4 +105,4 @@ public class ApiAiStreamServiceImpl implements ApiAiStreamService {
...
@@ -104,4 +105,4 @@ public class ApiAiStreamServiceImpl implements ApiAiStreamService {
return
ServerSentEvent
.
builder
(
delta
).
build
();
return
ServerSentEvent
.
builder
(
delta
).
build
();
});
});
}
}
}
}
\ No newline at end of file
yd-ai-api/src/main/java/com/yd/ai/api/service/impl/Main.java
0 → 100644
View file @
eb1d736b
package
com
.
yd
.
ai
.
api
.
service
.
impl
;
import
java.util.Arrays
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
com.alibaba.dashscope.aigc.generation.Generation
;
import
com.alibaba.dashscope.aigc.generation.GenerationParam
;
import
com.alibaba.dashscope.aigc.generation.GenerationResult
;
import
com.alibaba.dashscope.common.Message
;
import
com.alibaba.dashscope.common.Role
;
import
com.alibaba.dashscope.exception.ApiException
;
import
com.alibaba.dashscope.exception.InputRequiredException
;
import
com.alibaba.dashscope.exception.NoApiKeyException
;
import
com.alibaba.dashscope.utils.JsonUtils
;
import
io.reactivex.Flowable
;
import
java.lang.System
;
public
class
Main
{
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
Main
.
class
);
private
static
void
handleGenerationResult
(
GenerationResult
message
)
{
System
.
out
.
println
(
JsonUtils
.
toJson
(
message
));
}
public
static
void
streamCallWithMessage
(
Generation
gen
,
Message
userMsg
)
throws
NoApiKeyException
,
ApiException
,
InputRequiredException
{
GenerationParam
param
=
buildGenerationParam
(
userMsg
);
Flowable
<
GenerationResult
>
result
=
gen
.
streamCall
(
param
);
result
.
blockingForEach
(
message
->
handleGenerationResult
(
message
));
}
private
static
GenerationParam
buildGenerationParam
(
Message
userMsg
)
{
return
GenerationParam
.
builder
()
// 若没有配置环境变量,请用百炼API Key将下行替换为:.apiKey("sk-xxx")
.
apiKey
(
"sk-d6551c67cfbe4a759a78dc3625729291"
)
// 此处以qwen-plus为例,可按需更换模型名称。模型列表:https://help.aliyun.com/zh/model-studio/getting-started/models
.
model
(
"qwen-plus"
)
.
messages
(
Arrays
.
asList
(
userMsg
))
.
resultFormat
(
GenerationParam
.
ResultFormat
.
MESSAGE
)
.
incrementalOutput
(
true
)
.
build
();
}
public
static
void
main
(
String
[]
args
)
{
try
{
Generation
gen
=
new
Generation
();
Message
userMsg
=
Message
.
builder
().
role
(
Role
.
USER
.
getValue
()).
content
(
"孩子教育金如何规划?"
).
build
();
streamCallWithMessage
(
gen
,
userMsg
);
}
catch
(
ApiException
|
NoApiKeyException
|
InputRequiredException
e
)
{
logger
.
error
(
"An exception occurred: {}"
,
e
.
getMessage
());
}
System
.
exit
(
0
);
}
}
\ No newline at end of file
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