Skip to main content
Glama
AiManagerFactory.py•2.31 kB
# Copyright Ā© 2025 Dr.-Ing. Paul Wilhelm <paul@wilhelm.dev> # This file is part of Archive Agent. See LICENSE for details. from typing import Type from archive_agent.ai.AiManager import AiManager from archive_agent.ai_provider.AiProvider import AiProvider, AiProviderParams from archive_agent.core.CliManager import CliManager from archive_agent.core.CacheManager import CacheManager class AiManagerFactory(Exception): def __init__( self, cli: CliManager, chunk_lines_block: int, chunk_words_target: int, ai_provider_class: Type[AiProvider], ai_provider_params: AiProviderParams, ai_cache: CacheManager, invalidate_cache: bool, server_url: str, ): """ Initialize AI manager factory. :param cli: CLI manager. :param chunk_lines_block: Number of lines per block for chunking. :param chunk_words_target: Target number of words per chunk. :param ai_provider_class: AI provider class. :param ai_cache: AI cache. :param invalidate_cache: Invalidate cache if enabled, probe cache otherwise. :param server_url: Server URL. """ self.cli = cli self.chunk_lines_block = chunk_lines_block self.chunk_words_target = chunk_words_target self.ai_provider_class = ai_provider_class self.ai_provider_params = ai_provider_params self.ai_cache = ai_cache self.invalidate_cache = invalidate_cache self.server_url = server_url def get_ai(self) -> AiManager: """ Get new AI manager instance. """ return AiManager( cli=self.cli, chunk_lines_block=self.chunk_lines_block, chunk_words_target=self.chunk_words_target, ai_provider=self._load_ai_provider(), ) def _load_ai_provider(self) -> AiProvider: """ Load AI provider. :return: AI provider. """ ai_provider = self.ai_provider_class( logger=self.cli.logger, cache=self.ai_cache, invalidate_cache=self.invalidate_cache, params=self.ai_provider_params, server_url=self.server_url, ) return ai_provider

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/shredEngineer/Archive-Agent'

If you have feedback or need assistance with the MCP directory API, please join our Discord server