Commit ca995cc5 authored by Tong Li's avatar Tong Li

AI模型

parent 7c25b0fe
......@@ -23,6 +23,7 @@
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
......@@ -62,7 +63,10 @@
<artifactId>velocity-engine-core</artifactId>
<version>2.3</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<!-- 数据库驱动 -->
<dependency>
<groupId>mysql</groupId>
......@@ -117,6 +121,13 @@
<artifactId>ortools-java</artifactId>
<version>9.7.2996</version>
</dependency>
<!-- HTTP客户端 (用于调用LLM API) -->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.14</version>
</dependency>
</dependencies>
<build>
......
......@@ -11,15 +11,15 @@ import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration
public class CorsConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOriginPatterns("*") // 修改这里
.allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS")
.allowedHeaders("*")
.allowCredentials(true)
.maxAge(3600);
}
// @Override
// public void addCorsMappings(CorsRegistry registry) {
// registry.addMapping("/**")
// .allowedOriginPatterns("*") // 修改这里
// .allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS")
// .allowedHeaders("*")
// .allowCredentials(true)
// .maxAge(3600);
// }
@Bean
public CorsFilter corsFilter() {
......@@ -35,5 +35,6 @@ public class CorsConfig implements WebMvcConfigurer {
source.registerCorsConfiguration("/**", config);
return new CorsFilter(source);
}
}
\ No newline at end of file
package com.aps.config;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
/**
* LLM配置类
*/
@Data
@Component
@ConfigurationProperties(prefix = "llm")
public class LLMConfig {
/**
* API密钥
*/
private String apiKey = "";
/**
* API基础URL
*/
private String baseUrl = "https://api.deepseek.com/v1";
/**
* 模型名称
*/
private String model = "deepseek-chat";
/**
* 温度参数
*/
private Double temperature = 0.3;
/**
* 最大token数
*/
private Integer maxTokens = 4000;
}
This diff is collapsed.
package com.aps.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
/**
* 页面控制器
*/
@Controller
public class PageController {
/**
* 首页
*/
@GetMapping("/")
public String index() {
return "index";
}
}
This diff is collapsed.
package com.aps.model;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import java.util.List;
import java.util.Map;
/**
* Chromosome排产方案数据模型
*/
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class ChromosomeData {
/**
* 生成类型
*/
@JsonProperty("generateType")
private String generateType;
/**
* 版本号
*/
@JsonProperty("version")
private Integer version;
/**
* 机器分配方案 - 每个位置表示对应工序选择第几个可选机器(从1开始)
*/
@JsonProperty("machineSelection")
private List<Integer> machineSelection;
/**
* 工序排序方案 - 表示工序的加工优先级顺序
*/
@JsonProperty("operationSequencing")
private List<Integer> operationSequencing;
/**
* 全局工序列表
*/
@JsonProperty("globalOpList")
private List<OperationInfo> globalOpList;
/**
* AI优化标记
*/
@JsonProperty("optimized_by_ai")
private Boolean optimizedByAi;
/**
* AI优化建议
*/
@JsonProperty("optimization_advice")
private String optimizationAdvice;
/**
* 其他扩展字段
*/
private Map<String, Object> additionalProperties;
}
package com.aps.model;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
/**
* 机器选项
*/
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class MachineOption {
/**
* 机器ID
*/
@JsonProperty("machineId")
private Integer machineId;
/**
* 设备名称
*/
@JsonProperty("equipName")
private String equipName;
}
package com.aps.model;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import java.util.List;
/**
* 工序详细信息
*/
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class Operation {
/**
* 工序ID
*/
@JsonProperty("id")
private Integer id;
/**
* 订单编码
*/
@JsonProperty("orderCode")
private String orderCode;
/**
* 订单ID
*/
@JsonProperty("orderId")
private String orderId;
/**
* 产品名称
*/
@JsonProperty("productName")
private String productName;
/**
* 生产数量
*/
@JsonProperty("quantity")
private Integer quantity;
/**
* 运行时间
*/
@JsonProperty("runtime")
private Double runtime;
/**
* 单件产出
*/
@JsonProperty("singleOut")
private Double singleOut;
/**
* 可选机器列表
*/
@JsonProperty("machineOptions")
private List<MachineOption> machineOptions;
}
package com.aps.model;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
/**
* 工序信息
*/
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class OperationInfo {
/**
* 工序详细信息
*/
@JsonProperty("op")
private Operation op;
}
This diff is collapsed.
......@@ -86,7 +86,13 @@ mybatis-plus:
id-type: auto # 主键自增策略
table-underline: true
capital-mode: false
# LLM API配置 (DeepSeek)
llm:
api-key: sk-56843e79389346dfb2f8e0ccb8c76365
base-url: https://api.deepseek.com/v1
model: deepseek-chat
temperature: 0.3
max-tokens: 4000
# 应用配置
app:
# 时区配置
......
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment