Skip to content
This repository was archived by the owner on Mar 31, 2026. It is now read-only.

Structured llm enum system - #163

Open
chent00ng wants to merge 15 commits into
devfrom
feature/structured-llm-enum-system
Open

chent00ng wants to merge 15 commits into
devfrom
feature/structured-llm-enum-system

Conversation

@chent00ng

Copy link
Copy Markdown
Contributor

No description provided.

- Add ChatAISystemLLMEnum with comprehensive provider information
- Create LLMProviderInfo class for structured metadata
- Implement extension methods for JSON serialization and batch operations
- Update ChatAIGAgentConfigDto to use enum instead of string
- Support automatic schema generation with x-enumNames extensions
- Enable type-safe LLM provider selection with rich metadata

This provides:
- Strong typing for LLM provider selection
- Rich metadata including performance characteristics and use cases
- JSON serialization support for schema generation
- Backward compatibility through ToString() conversion
- Structured information for Station UI dropdown enhancement
- Add JSON-encoded Description attributes to ChatAISystemLLMEnum values
- Create ChatAISchemaEnhancer for advanced schema generation
- Include structured metadata: provider, performance, use cases
- Support provider grouping and categorization
- Enable rich UI dropdown with detailed provider information
- Add features, pricing, and enterprise classification
- Provide both automated and manual schema enhancement options

This enables Station to display:
- Provider names and categories
- Performance characteristics
- Use case descriptions
- Enterprise vs standard tiers
- Feature comparisons
- Structured metadata for better UX
… schema enhancement

- Create comprehensive metadata framework with interfaces, base classes, and processors
- Add LLMProviderMetadataAttribute and MCPServerMetadataAttribute for structured enum metadata
- Implement UniversalSchemaProcessor for automatic schema enhancement from metadata attributes
- Create ConfigurationSchemaEnhancer for unified configuration schema generation
- Update ChatAISystemLLMEnum with rich metadata attributes for Station frontend
- Add support for provider info, performance data, use cases, and UI configuration
- Enable Station to receive structured metadata via JSON Schema x-extensions
- Maintain backward compatibility with existing Orleans serialization
- Provide type-safe metadata access through extension methods

This framework enables any GAgent configuration to expose rich metadata to the Station
frontend through standardized metadata attributes, making the system highly extensible
and maintainable for future enhancements.
- Delete LLMProviderMetadataService.cs as it's superseded by the universal framework
- UniversalSchemaProcessor and ConfigurationSchemaEnhancer provide better abstraction
- Keep LLMProviderMetadataAttribute.cs as it's the core metadata attribute
- Maintain cleaner codebase with single responsibility principle
- Reduce maintenance overhead by eliminating duplicate functionality
…project

- Delete MCPServerMetadataAttribute.cs from Twitter/ChatAIAgent directory
- This file was mistakenly placed in Twitter project during development
- MCPServerType enum currently only uses simple [Description] attributes
- UniversalSchemaProcessor is designed to be generic and doesn't require MCP-specific references
- Maintain clean separation of concerns: MCP-related code stays in MCP.Core
- Code compiles successfully after cleanup
…tion success

- Delete ConfigurationSchemaEnhancer.cs as it was superseded by simplified approach
- Delete LLMProviderMetadataAttribute.cs as it referenced deleted framework components
- Remove ChatAISchemaEnhancer.cs which had compilation errors due to deleted methods
- Clean up ChatAISystemLLMEnum.cs by removing LLMProviderMetadata attributes and extension code
- Simplify to only use basic [Description] attributes on enum values
- All files compile successfully after cleanup
- Maintain simple and maintainable code structure
…MEnum

- Remove all [Description] attributes as they duplicate XML documentation comments
- Remove unnecessary System.ComponentModel using directive
- Keep only XML summary comments for developer documentation
- Enum names are self-descriptive and sufficient for schema generation
- Reduces code duplication and maintenance overhead
- Compilation verified successful with no errors
- Add System.ComponentModel.Description attributes to all ConfigDto classes
- Improve code documentation and maintainability
- Cover all major configuration classes including:
  * MemberConfigDto and GroupMemberConfigDto
  * LLMConfigDto and SelfLLMConfig
  * ChatConfigDto and ChatAIGAgentConfigDto
  * InputConfigDto and PsiOmniGAgentConfig
  * MCPGAgentConfig and WorkflowCoordinatorConfigDto
  * WorkflowUnitDto and related workflow classes
- Restore WorkflowViewConfigDto to original state (not a config class)
- Ensure all descriptions are accurate and helpful for developers
…tructured metadata

- Add GenericMetaAttribute class for flexible enum metadata support
- Add comprehensive metadata to ChatAISystemLLMEnum with provider, type, strengths, best_for, and speed attributes
- Implement SystemLLMMetaKeys constants for metadata key management
- Support multiple parameter constructors for nested metadata structures
- Enhance LLM selection with detailed capability descriptions
- Add Aevatar.GAgents.Basic namespace to GenericMetaAttribute.cs
- Add System and System.Linq using statements for proper compilation
- Add using Aevatar.GAgents.Basic to ChatAISystemLLMEnum.cs for attribute resolution
- Ensure proper packaging and reference for GenericMetaAttribute usage across projects
# Conflicts:
#	src/Aevatar.GAgents.PsiOmni/PsiOmniGAgentConfig.cs
- Create new two-parameter validation demonstration module
- Implement HTTP request input type validation (None, FormData, XWwwFormUrlencoded, JSON, Raw, Binary)
- Add ConfigValidateGAgentConfig with IValidatableObject implementation
- Support dynamic validation based on InputType enum
- Provide comprehensive validation error messages
- Include complete English localization for international development
- Follow GAgent implementation best practices with event sourcing
- Add proper Orleans serialization attributes and state management
@codecov

codecov Bot commented Aug 26, 2025

Copy link
Copy Markdown

- Delete src/Aevatar.GAgents.ConfigValidateGagent/ directory and all its contents
- Remove project reference from AevatarGAgents.sln solution file
- Remove ConfigValidateGagent from MyGet publish workflow
- Clean up test project that was no longer needed
[Id(1)] public string SystemLLM { get; set; } = "OpenAI";
[Id(1)]
[Description("The system LLM configuration to use for AI chat functionality")]
public ChatAISystemLLMEnum SystemLLM { get; set; } = ChatAISystemLLMEnum.OpenAI;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should stay consistent with appsettings' llm configuration instead of creating an enum to correspond to each.

arg-foo pushed a commit to aevatarAI/aevatar-station that referenced this pull request Sep 4, 2025
…tar-gagents

- Add GenericMetaAttribute and ChatAISystemLLMEnum for metadata framework
- Add Description attributes to all ConfigDto properties across the project
- Cover all major configuration classes including:
  * MemberConfigDto and GroupMemberConfigDto
  * LLMConfigDto and SelfLLMConfig
  * ChatConfigDto and ChatAIGAgentConfigDto
  * InputConfigDto and PsiOmniGAgentConfig
  * MCPGAgentConfig and WorkflowCoordinatorConfigDto
  * WorkflowUnitDto and related workflow classes
- Migrated from aevatarAI/aevatar-gagents#163
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants