@Override
	public BeanRegistrationAotContribution processAheadOfTime(RegisteredBean registeredBean) {
		Class<?> beanClass = registeredBean.getBeanClass();
		try {
			Map<String, ChatGPTJavaFunction> functions = GPTFunctionUtils.extractFunctions(beanClass);
			functions.forEach(
					(functionName, function) -> log.info("Registering hints for function {} on bean {} with class {}",
							functionName, registeredBean.getBeanName(), registeredBean.getBeanClass().getName()));
			return !functions.isEmpty() ? new GPTFunctionBeanRegistrationAotContribution(beanClass, functions) : null;
		} //
		catch (Exception e) {
			throw new RuntimeException(
					String.format("couldn't read the functions on bean class %s", beanClass.getName()), e);
		}
	}
Repository for all GPT callback functions.

@author Josh Long
src/main/java/org/mvnsearch/chatgpt/spring/service/GPTFunctionRegistry.java