LLMMiddleware#
LLMMiddlewareChain#
- class council.llm.LLMMiddlewareChain(llm: LLMBase, middlewares: Sequence[LLMMiddleware] | None = None)[source]#
Bases:
objectManages a chain of LLM middlewares and executes requests through them.
- add_middleware(middleware: LLMMiddleware) None[source]#
Add middleware to a chain.
- execute(request: LLMRequest) LLMResponse[source]#
Execute middleware chain.
LLMLoggingMiddleware#
LLMFileLoggingMiddleware#
LLMRetryMiddleware#
LLMCachingMiddleware#
- class council.llm.LLMCachingMiddleware(ttl: float = 300.0, cache_limit_size: int = 10)[source]#
Bases:
objectMiddleware that caches LLM responses to avoid duplicate calls.
- __init__(ttl: float = 300.0, cache_limit_size: int = 10) None[source]#
Initialize the caching middleware.
- Parameters:
ttl – Sliding window time-to-live in seconds for cache entries (default: 5 mins)
cache_limit_size – Cache limit size in cached entries (default: 10)
- static get_hash(request: LLMRequest, configuration: T_Configuration) str[source]#
Convert the request and LLM configuration to a hash with hashlib.sha256.
LLMRequest#
- class council.llm.LLMRequest(context: LLMContext, messages: Sequence[LLMMessage], **kwargs: Any)[source]#
Bases:
object- static default(messages: Sequence[LLMMessage], **kwargs: Any) LLMRequest[source]#
Creates a default LLMRequest with an empty context.
LLMResponse#
- class council.llm.LLMResponse(request: LLMRequest, result: LLMResult | None, duration: float)[source]#
Bases:
object- static empty(request: LLMRequest) LLMResponse[source]#
Creates an empty LLMResponse for a given request.