Provider ABC¶
pycodeloop.abc.provider.Provider
¶
Bases: ABC
Import
You can import the Provider class with:
from pycodeloop.abc.provider import Provider
Every LLM backend CodeLoop can drive implements this interface. Swap
providers by passing a different instance to Agent(provider=...)
or Config(provider=...).
Source code in pycodeloop/abc/provider.py
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 | |
api_key = api_key
instance-attribute
¶
extra = kwargs
instance-attribute
¶
model = model
instance-attribute
¶
name = 'base'
class-attribute
instance-attribute
¶
__init__(model, api_key=None, **kwargs)
¶
Source code in pycodeloop/abc/provider.py
53 54 55 56 | |
complete(system_prompt, messages, tools, on_delta=None)
abstractmethod
¶
Send conversation + tool schema, return the model's response.
When on_delta is given, call it with each text chunk as it
arrives instead of only returning the assembled text at the end.
Source code in pycodeloop/abc/provider.py
58 59 60 61 62 63 64 65 66 67 68 69 70 | |
pycodeloop.abc.provider.ProviderResponse
dataclass
¶
Source code in pycodeloop/abc/provider.py
30 31 32 33 34 35 36 | |
raw = None
class-attribute
instance-attribute
¶
stop_reason = 'end_turn'
class-attribute
instance-attribute
¶
text = ''
class-attribute
instance-attribute
¶
tool_calls = field(default_factory=list)
class-attribute
instance-attribute
¶
usage = field(default_factory=Usage)
class-attribute
instance-attribute
¶
__init__(text='', tool_calls=list(), stop_reason='end_turn', usage=Usage(), raw=None)
¶
pycodeloop.abc.provider.ToolCall
dataclass
¶
pycodeloop.abc.provider.Usage
dataclass
¶
Source code in pycodeloop/abc/provider.py
18 19 20 21 22 23 24 25 26 27 | |
input_tokens = 0
class-attribute
instance-attribute
¶
output_tokens = 0
class-attribute
instance-attribute
¶
__add__(other)
¶
Source code in pycodeloop/abc/provider.py
23 24 25 26 27 | |