refactor: replace langchain4j with Spring AI in bigtop-manager-ai module #291
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Migration Plan: Replace LangChain4j with Spring AI
This PR migrates the AI module from LangChain4j to Spring AI, aligning the implementation with the Spring ecosystem and simplifying future maintenance.
Completed Tasks
langchain4jbigtop-manager-aimodule dependencies inpom.xmlAIAssistantinterface to use Spring AI typesAbstractAIAssistantto use Spring AI typesPersistentChatMemoryStoreto implementChatMemoryRepositoryOpenAIAssistant– migrated to Spring AI OpenAI clientDeepSeekAssistant– implemented using Spring AIQianFanAssistant– implemented using Spring AIDashScopeAssistant– implemented using Spring AIPersistentChatMemoryStoreTestGeneralAssistantFactoryTestRestClientdependency issue by upgrading Spring BootPending Tasks
DashScopeAssistantOpenAIAssistantDeepSeekAssistantQianFanAssistantImplementation Notes
AI Module Migration
1.0.0-RC1ChatMemoryStorewith Spring AI’sChatMemoryRepositoryOpenAiChatModelsupports both synchronous and streaming callsServer Module
ToolProviderToolSpecificationToolExecutordev.langchain4j:langchain4jorg.jetbrains:annotationsDependency Updates
3.1.1to3.2.0RestClientwas introduced in Spring Framework 6.1RestClient@PathVariableannotations must explicitly specify the parameter name(e.g.
@PathVariable(name = "id"))thank copilot~