feat: Enhance agent functionality with ModelProfile integration
- Added ModelProfile to the Agent record to allow for more detailed model configurations. - Updated AgentExecutorService to utilize ModelProfile when fetching clients. - Modified BaseAgent interface to include a default modelProfile method. - Adjusted Client interface and implementations to support ModelProfile in conversation and streaming methods. - Enhanced ClientService to retrieve clients based on ModelProfile. - Updated CompletionInterceptor to work with ModelProfile instead of ModelCategory. - Refactored AzureAiClient and other client implementations to handle ModelProfile correctly. - Changed CachedClient to cache responses based on ModelProfile. - Updated ModelCategory to a record type for better validation and immutability. - Enhanced ModelProfile with validation checks for its fields. - Updated ModelProfileService to support fetching profiles based on ModelCategory. - Adjusted tests to accommodate changes in Agent and ModelProfile. - Updated properties files to include category information for model profiles.
This commit is contained in:
@@ -16,7 +16,32 @@ public record ModelProfile(
|
||||
BigDecimal costInToken,
|
||||
BigDecimal costOutToken,
|
||||
String reasoningEffort,
|
||||
String reasoningSummaryDetails) {
|
||||
String reasoningSummaryDetails,
|
||||
String category) {
|
||||
|
||||
public ModelProfile {
|
||||
if (maxTokens <= 0) {
|
||||
throw new IllegalArgumentException("Model profile maxTokens must be greater than zero");
|
||||
}
|
||||
if (maxContextLength <= 0) {
|
||||
throw new IllegalArgumentException("Model profile maxContextLength must be greater than zero");
|
||||
}
|
||||
if (temperature <= 0) {
|
||||
throw new IllegalArgumentException("Model profile temperature must be greater than zero");
|
||||
}
|
||||
if (topP <= 0) {
|
||||
throw new IllegalArgumentException("Model profile topP must be greater than zero");
|
||||
}
|
||||
if (modelProvider == null) {
|
||||
throw new IllegalArgumentException("Model profile modelProvider is mandatory and cannot be null");
|
||||
}
|
||||
if (url == null || url.isBlank()) {
|
||||
throw new IllegalArgumentException("Model profile url is mandatory and cannot be empty");
|
||||
}
|
||||
if (category == null || category.isBlank()) {
|
||||
throw new IllegalArgumentException("Model profile category is mandatory and cannot be empty");
|
||||
}
|
||||
}
|
||||
|
||||
public static enum ModelProvider {
|
||||
AZURE_AI, OAI_TEXT_COMPLETION, OAI_CHAT_COMPLETION;
|
||||
|
||||
Reference in New Issue
Block a user