feat(llmhub): 添加 Nacos 配置并支持 Webflux- 新增 Nacos 配置文件 application.yml
- 更新 build.gradle.kts 文件,替换 USE_SPRING_BOOT 为 USE_SPRING_BOOT_WEB - 添加 USE_SPRING_BOOT_WEBFLUX 标志并支持 Webflux - 修改 ChatController 和 LLMProvider,添加 MediaType.APPLICATION_NDJSON_VALUE
This commit is contained in:
parent
c945e5920f
commit
77006f51c4
@ -19,7 +19,8 @@ configurations.implementation {
|
||||
allprojects {
|
||||
// 设置全局属性
|
||||
ext {
|
||||
set(ProjectFlags.USE_SPRING_BOOT, false)
|
||||
set(ProjectFlags.USE_SPRING_BOOT_WEB, false)
|
||||
set(ProjectFlags.USE_SPRING_BOOT_WEBFLUX, false)
|
||||
set(ProjectFlags.USE_LLM_CORE_SPI, false)
|
||||
set(ProjectFlags.USE_SPRING_CLOUD_BOM, false)
|
||||
set(ProjectFlags.IS_ROOT_MODULE, false)
|
||||
@ -67,7 +68,7 @@ allprojects {
|
||||
subprojects {
|
||||
afterEvaluate {
|
||||
// springbootWeb
|
||||
if (project.getPropertyByBoolean(ProjectFlags.USE_SPRING_BOOT)) {
|
||||
if (project.getPropertyByBoolean(ProjectFlags.USE_SPRING_BOOT_WEB)) {
|
||||
apply {
|
||||
plugin(libs.plugins.spring.dependency.management.get().pluginId)
|
||||
plugin(libs.plugins.spring.boot.get().pluginId)
|
||||
@ -80,6 +81,16 @@ subprojects {
|
||||
testRuntimeOnly(libs.junitPlatform.launcher)
|
||||
}
|
||||
}
|
||||
if(project.getPropertyByBoolean(ProjectFlags.USE_SPRING_BOOT_WEBFLUX)){
|
||||
apply {
|
||||
plugin(libs.plugins.spring.dependency.management.get().pluginId)
|
||||
plugin(libs.plugins.spring.boot.get().pluginId)
|
||||
plugin(libs.plugins.kotlin.plugin.spring.get().pluginId)
|
||||
}
|
||||
dependencies {
|
||||
implementation(libs.springBootStarter.webflux)
|
||||
}
|
||||
}
|
||||
// llm-core-spi
|
||||
if (project.getPropertyByBoolean(ProjectFlags.USE_LLM_CORE_SPI)) {
|
||||
dependencies {
|
||||
@ -99,7 +110,7 @@ subprojects {
|
||||
plugin(libs.plugins.kotlin.jvm.get().pluginId)
|
||||
plugin(libs.plugins.jibLocalPlugin.get().pluginId)
|
||||
}
|
||||
println(project.name + ":" + project.getPropertyByBoolean(ProjectFlags.USE_SPRING_BOOT))
|
||||
println(project.name + ":" + project.getPropertyByBoolean(ProjectFlags.USE_SPRING_BOOT_WEB))
|
||||
|
||||
kotlin {
|
||||
compilerOptions {
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
object ProjectFlags {
|
||||
const val USE_SPRING_BOOT = "useSpringBoot"
|
||||
const val USE_SPRING_BOOT_WEB = "useSpringBootWeb"
|
||||
const val USE_SPRING_BOOT_WEBFLUX = "useSpringBootWebflux"
|
||||
const val USE_SPRING_CLOUD_BOM = "useSpringCloudBom"
|
||||
const val USE_LLM_CORE_SPI = "useLLMCoreSPI"
|
||||
const val IS_ROOT_MODULE = "isRootModule"
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
extra {
|
||||
// 开启springboot
|
||||
setProperty(ProjectFlags.USE_SPRING_BOOT, true)
|
||||
setProperty(ProjectFlags.USE_SPRING_BOOT_WEB, true)
|
||||
setProperty(ProjectFlags.USE_SPRING_CLOUD_BOM,true)
|
||||
}
|
||||
dependencies {
|
||||
|
||||
@ -5,6 +5,7 @@ import kotlinx.coroutines.flow.Flow
|
||||
import org.jcnc.llmhub.core.service.service.impl.LLMServiceImpl
|
||||
import org.jcnc.llmhub.core.spi.entities.request.ChatRequest
|
||||
import org.jcnc.llmhub.core.spi.entities.response.ChatResponsePart
|
||||
import org.springframework.http.MediaType
|
||||
import org.springframework.web.bind.annotation.PostMapping
|
||||
import org.springframework.web.bind.annotation.RequestBody
|
||||
import org.springframework.web.bind.annotation.RequestMapping
|
||||
@ -32,7 +33,7 @@ class ChatController(
|
||||
* @param request 聊天请求对象,包含了发起聊天所需的各种参数和用户信息
|
||||
* @return 返回一个Flow流,流中依次提供了聊天响应的部分数据,允许异步处理和逐步消费响应内容
|
||||
*/
|
||||
@PostMapping("/stream")
|
||||
@PostMapping("/stream", produces = [MediaType.APPLICATION_NDJSON_VALUE])
|
||||
fun chat(@RequestBody request: ChatRequest): Flow<ChatResponsePart> {
|
||||
return llmServiceImpl.chat(request)
|
||||
}
|
||||
|
||||
@ -5,6 +5,7 @@ import org.jcnc.llmhub.core.spi.entities.request.ChatRequest
|
||||
import org.jcnc.llmhub.core.spi.entities.request.EmbeddingRequest
|
||||
import org.jcnc.llmhub.core.spi.entities.response.ChatResponsePart
|
||||
import org.jcnc.llmhub.core.spi.entities.response.EmbeddingResponse
|
||||
import org.springframework.http.MediaType
|
||||
import org.springframework.web.bind.annotation.PostMapping
|
||||
import org.springframework.web.bind.annotation.RequestMapping
|
||||
|
||||
@ -28,7 +29,7 @@ interface LLMProvider {
|
||||
* @param request 聊天请求对象,包含建立聊天所需的信息,如用户标识、会话标识等
|
||||
* @return 返回一个Flow流,通过该流可以接收到聊天响应的部分数据,如消息、状态更新等
|
||||
*/
|
||||
@PostMapping("/chat")
|
||||
@PostMapping("/chat", produces = [MediaType.APPLICATION_NDJSON_VALUE])
|
||||
fun chat(request: ChatRequest): Flow<ChatResponsePart>
|
||||
|
||||
/**
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
|
||||
// 开启springboot
|
||||
extra[ProjectFlags.USE_SPRING_BOOT] = true
|
||||
extra[ProjectFlags.USE_SPRING_BOOT_WEB] = true
|
||||
setProperty(ProjectFlags.USE_SPRING_CLOUD_BOM,true)
|
||||
dependencies {
|
||||
// Nacos 服务发现和配置
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
// 开启springboot
|
||||
extra[ProjectFlags.USE_SPRING_BOOT] = true
|
||||
extra[ProjectFlags.USE_SPRING_BOOT_WEB] = true
|
||||
setProperty(ProjectFlags.USE_SPRING_CLOUD_BOM,true)
|
||||
dependencies {
|
||||
// Nacos 服务发现和配置
|
||||
|
||||
@ -0,0 +1,20 @@
|
||||
spring:
|
||||
application:
|
||||
name: llmhub-impl-openAi
|
||||
cloud:
|
||||
nacos:
|
||||
access-key: eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJuYWNvcyIsImV4cCI6MTc0NTc1NjkwOH0.86TmeN27gXbpw55jMmOVNz42B9u8dXtGwCvyGlWbYVo
|
||||
username: nacos
|
||||
password: L4s6f9y3
|
||||
server-addr: 49.235.96.75:8848
|
||||
discovery:
|
||||
server-addr: ${spring.cloud.nacos.server-addr}
|
||||
access-key: ${spring.cloud.nacos.access-key}
|
||||
username: ${spring.cloud.nacos.username}
|
||||
password: ${spring.cloud.nacos.password}
|
||||
|
||||
|
||||
# profiles:
|
||||
# active: dev
|
||||
server:
|
||||
port: 8083
|
||||
Loading…
x
Reference in New Issue
Block a user