XAIConfig.fromLLMConfig constructor
XAIConfig.fromLLMConfig(
- LLMConfig config
Create XAIConfig from unified LLMConfig
Implementation
factory XAIConfig.fromLLMConfig(LLMConfig config) {
// Handle web search configuration
SearchParameters? searchParams =
config.getExtension<SearchParameters>('searchParameters');
bool? liveSearchEnabled = config.getExtension<bool>('liveSearch');
// Check for webSearchEnabled flag
final webSearchEnabled = config.getExtension<bool>('webSearchEnabled');
if (webSearchEnabled == true &&
searchParams == null &&
liveSearchEnabled != true) {
// Enable live search with default web search parameters
liveSearchEnabled = true;
searchParams = SearchParameters.webSearch();
}
// Check for webSearchConfig and convert to SearchParameters
final webSearchConfig =
config.getExtension<WebSearchConfig>('webSearchConfig');
if (webSearchConfig != null && searchParams == null) {
searchParams = _convertWebSearchConfigToSearchParameters(webSearchConfig);
liveSearchEnabled = true;
}
return XAIConfig(
apiKey: config.apiKey!,
baseUrl: config.baseUrl,
model: config.model,
maxTokens: config.maxTokens,
temperature: config.temperature,
systemPrompt: config.systemPrompt,
timeout: config.timeout,
topP: config.topP,
topK: config.topK,
tools: config.tools,
toolChoice: config.toolChoice,
// xAI-specific extensions
jsonSchema: config.getExtension<StructuredOutputFormat>('jsonSchema'),
embeddingEncodingFormat:
config.getExtension<String>('embeddingEncodingFormat'),
embeddingDimensions: config.getExtension<int>('embeddingDimensions'),
searchParameters: searchParams,
liveSearch: liveSearchEnabled,
originalConfig: config,
);
}