refactor: 重构AI服务架构为基于gRPC的实现
- 将AI服务从OpenAI API调用重构为gRPC服务架构 - 添加gRPC相关依赖和Protobuf编译插件 - 更新application.yml配置为gRPC客户端设置 - 移除旧的AIServiceImpl实现 Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -1,72 +0,0 @@
|
||||
package cn.meowrain.aioj.backend.aiservice.service.impl;
|
||||
|
||||
import cn.meowrain.aioj.backend.aiservice.service.AIService;
|
||||
import dev.langchain4j.model.chat.ChatLanguageModel;
|
||||
import dev.langchain4j.model.openai.OpenAiChatModel;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* AI 服务实现
|
||||
*/
|
||||
@Slf4j
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class AIServiceImpl implements AIService {
|
||||
|
||||
private final ChatLanguageModel chatLanguageModel;
|
||||
|
||||
@Override
|
||||
public String analyzeCode(String code, String language) {
|
||||
String prompt = buildPrompt("代码分析", language, code,
|
||||
"请分析以下代码的质量、潜在问题和改进建议。");
|
||||
log.info("执行代码分析: language={}, codeLength={}", language, code.length());
|
||||
return chatLanguageModel.generate(prompt);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String optimizeCode(String code, String language) {
|
||||
String prompt = buildPrompt("代码优化", language, code,
|
||||
"请提供以下代码的优化建议,包括性能优化、代码风格改进等。");
|
||||
log.info("执行代码优化: language={}, codeLength={}", language, code.length());
|
||||
return chatLanguageModel.generate(prompt);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String generateTestCases(String code, String language) {
|
||||
String prompt = buildPrompt("测试用例生成", language, code,
|
||||
"请为以下代码生成完整的测试用例,包括边界条件和异常情况。");
|
||||
log.info("生成测试用例: language={}, codeLength={}", language, code.length());
|
||||
return chatLanguageModel.generate(prompt);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String explainCode(String code, String language) {
|
||||
String prompt = buildPrompt("代码解释", language, code,
|
||||
"请详细解释以下代码的功能、逻辑和实现方式。");
|
||||
log.info("解释代码: language={}, codeLength={}", language, code.length());
|
||||
return chatLanguageModel.generate(prompt);
|
||||
}
|
||||
|
||||
/**
|
||||
* 构建提示词
|
||||
*/
|
||||
private String buildPrompt(String task, String language, String code, String instruction) {
|
||||
return String.format("""
|
||||
# 任务:%s
|
||||
|
||||
# 编程语言:%s
|
||||
|
||||
# 代码:
|
||||
```%s
|
||||
%s
|
||||
```
|
||||
|
||||
# 要求:
|
||||
%s
|
||||
|
||||
请提供详细、准确的分析结果。
|
||||
""", task, language, language, code, instruction);
|
||||
}
|
||||
}
|
||||
@@ -39,14 +39,14 @@ jwt:
|
||||
access-expire: 900000 # 15分钟
|
||||
refresh-expire: 604800000 # 7天
|
||||
|
||||
# AI 服务配置
|
||||
ai:
|
||||
openai:
|
||||
api-key: ${OPENAI_API_KEY:your-api-key}
|
||||
base-url: ${OPENAI_BASE_URL:https://api.openai.com}
|
||||
model: ${OPENAI_MODEL:gpt-4}
|
||||
max-tokens: ${OPENAI_MAX_TOKENS:2000}
|
||||
temperature: ${OPENAI_TEMPERATURE:0.7}
|
||||
# gRPC 客户端配置
|
||||
grpc:
|
||||
client:
|
||||
host: ${GRPC_SERVER_HOST:localhost}
|
||||
port: ${GRPC_SERVER_PORT:50051}
|
||||
timeout: ${GRPC_TIMEOUT:10}
|
||||
tls-enabled: ${GRPC_TLS_ENABLED:false}
|
||||
max-message-size: ${GRPC_MAX_MESSAGE_SIZE:10485760}
|
||||
|
||||
aioj:
|
||||
log:
|
||||
|
||||
Reference in New Issue
Block a user