|
@ -4,9 +4,12 @@ import cn.ai.springaigu.domain.Appointment; |
|
|
import cn.ai.springaigu.service.AppointmentService; |
|
|
import cn.ai.springaigu.service.AppointmentService; |
|
|
import dev.langchain4j.agent.tool.P; |
|
|
import dev.langchain4j.agent.tool.P; |
|
|
import dev.langchain4j.agent.tool.Tool; |
|
|
import dev.langchain4j.agent.tool.Tool; |
|
|
|
|
|
import dev.langchain4j.internal.Json; |
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
import org.springframework.stereotype.Component; |
|
|
import org.springframework.stereotype.Component; |
|
|
|
|
|
|
|
|
|
|
|
import java.util.List; |
|
|
|
|
|
|
|
|
@Component |
|
|
@Component |
|
|
public class AppointmentTools { |
|
|
public class AppointmentTools { |
|
|
|
|
|
|
|
@ -14,7 +17,7 @@ public class AppointmentTools { |
|
|
private AppointmentService appointmentService; |
|
|
private AppointmentService appointmentService; |
|
|
|
|
|
|
|
|
// @Tool(name = "预约挂号", value = "根据参数,先执行工具方法queryDepartment查询是否可预约,并直接给用户回答是否可预约,并让用户确认所有预约信息,用户确认后再进行预约。")
|
|
|
// @Tool(name = "预约挂号", value = "根据参数,先执行工具方法queryDepartment查询是否可预约,并直接给用户回答是否可预约,并让用户确认所有预约信息,用户确认后再进行预约。")
|
|
|
@Tool(name="预约挂号", value = "根据参数,先执行工具方法queryDepartment查询是否可预约,并直接给用户回答是否可预约,并让用户确认所有预约信息,用户确认后再进行预约。如果用户没有提供具体的医生姓名,请从向量存储中找到一位医生。") |
|
|
@Tool(name = "预约挂号", value = "根据参数,先执行工具方法queryDepartment查询是否可预约,并直接给用户回答是否可预约,并让用户确认所有预约信息,用户确认后再进行预约。如果用户没有提供具体的医生姓名,请从向量存储中找到一位医生。") |
|
|
public String bookAppointment(Appointment appointment) { |
|
|
public String bookAppointment(Appointment appointment) { |
|
|
//查找数据库中是否包含对应的预约记录
|
|
|
//查找数据库中是否包含对应的预约记录
|
|
|
Appointment appointmentDB = appointmentService.getOne(appointment); |
|
|
Appointment appointmentDB = appointmentService.getOne(appointment); |
|
@ -45,6 +48,16 @@ public class AppointmentTools { |
|
|
return "您没有预约记录,请核对预约科室和时间"; |
|
|
return "您没有预约记录,请核对预约科室和时间"; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Tool(name = "查询预约", value = "根据参数,查询预约数据集合") |
|
|
|
|
|
public String queryAppointment(Appointment appointment) { |
|
|
|
|
|
List<Appointment> query = appointmentService.query(appointment); |
|
|
|
|
|
if (!query.isEmpty()) { |
|
|
|
|
|
return "查询到预约数据:" + Json.toJson(query); |
|
|
|
|
|
} |
|
|
|
|
|
return "您没有预约记录"; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Tool(name = "查询是否有号源", value = "根据科室名称,日期,时间和医生查询是否有号源,并返回给用户") |
|
|
@Tool(name = "查询是否有号源", value = "根据科室名称,日期,时间和医生查询是否有号源,并返回给用户") |
|
|
public boolean queryDepartment( |
|
|
public boolean queryDepartment( |
|
|
@P(value = "科室名称") String name, |
|
|
@P(value = "科室名称") String name, |
|
|