Browse Source

自己增加的例子

master
周开红 8 months ago
parent
commit
0b58416c30
  1. 2
      src/main/java/com/xs/ai/controller/OpenAiController.java
  2. 9
      src/main/java/com/xs/ai/services/BookingTools.java
  3. 10
      src/main/java/com/xs/ai/services/FlightBookingService.java

2
src/main/java/com/xs/ai/controller/OpenAiController.java

@ -50,7 +50,7 @@ public class OpenAiController {
//每一次对话拦截后搜索附加上后再给大模型 //每一次对话拦截后搜索附加上后再给大模型
//new QuestionAnswerAdvisor(vectorStore, SearchRequest.defaults()), // RAG //new QuestionAnswerAdvisor(vectorStore, SearchRequest.defaults()), // RAG
new LoggingAdvisor()) new LoggingAdvisor())
.defaultFunctions("getBookingDetails", "changeBooking", "cancelBooking") // FUNCTION CALLING
.defaultFunctions("getBookingDetails", "changeBooking", "cancelBooking","deleteBooking") // FUNCTION CALLING
.build(); .build();

9
src/main/java/com/xs/ai/services/BookingTools.java

@ -69,4 +69,13 @@ public class BookingTools {
}; };
} }
@Bean
@Description("删除机票预定")
public Function<CancelBookingRequest, String> deleteBooking() {
return request -> {
flightBookingService.deleteBooking(request.bookingNumber(), request.name());
return "";
};
}
} }

10
src/main/java/com/xs/ai/services/FlightBookingService.java

@ -93,6 +93,16 @@ public class FlightBookingService {
booking.setBookingStatus(BookingStatus.CANCELLED); booking.setBookingStatus(BookingStatus.CANCELLED);
} }
// 删除预定航班
public void deleteBooking(String bookingNumber, String name) {
var booking = findBooking(bookingNumber, name);
if (booking.getDate().isBefore(LocalDate.now().plusDays(2))) {
throw new IllegalArgumentException("Booking cannot be cancelled within 48 hours of the start date.");
}
System.out.println("进入删除。。。。。");
booking.setBookingStatus(BookingStatus.CONFIRMED);
}
private BookingDetails toBookingDetails(Booking booking) { private BookingDetails toBookingDetails(Booking booking) {
return new BookingDetails(booking.getBookingNumber(), booking.getCustomer().getName(), booking.getDate(), return new BookingDetails(booking.getBookingNumber(), booking.getCustomer().getName(), booking.getDate(),
booking.getBookingStatus(), booking.getFrom(), booking.getTo(), booking.getBookingClass().toString()); booking.getBookingStatus(), booking.getFrom(), booking.getTo(), booking.getBookingClass().toString());

Loading…
Cancel
Save