mirror of
https://github.com/blakeblackshear/frigate.git
synced 2026-10-14 10:42:49 +03:00
Use manual context size if set
This commit is contained in:
@@ -192,7 +192,7 @@ class LlamaCppClient(GenAIClient):
|
|||||||
logger.info(
|
logger.info(
|
||||||
"llama.cpp model '%s' initialized — context: %s, vision: %s, audio: %s, tools: %s, reasoning: %s",
|
"llama.cpp model '%s' initialized — context: %s, vision: %s, audio: %s, tools: %s, reasoning: %s",
|
||||||
configured_model,
|
configured_model,
|
||||||
self._context_size or "unknown",
|
self.get_context_size(),
|
||||||
self._supports_vision,
|
self._supports_vision,
|
||||||
self._supports_audio,
|
self._supports_audio,
|
||||||
self._supports_tools,
|
self._supports_tools,
|
||||||
|
|||||||
@@ -491,6 +491,34 @@ class TestLlamaCppProvider(unittest.TestCase):
|
|||||||
final = _final_message(self._run_with_lines(client, lines, MULTIMODAL_MESSAGES))
|
final = _final_message(self._run_with_lines(client, lines, MULTIMODAL_MESSAGES))
|
||||||
self.assertEqual(final["content"], "ok")
|
self.assertEqual(final["content"], "ok")
|
||||||
|
|
||||||
|
def _validated_client(self, server_context_size, provider_options=None):
|
||||||
|
"""Build a client as if the server reported the given context size."""
|
||||||
|
cfg = GenAIConfig(
|
||||||
|
provider="llamacpp",
|
||||||
|
model="m",
|
||||||
|
base_url="http://localhost:9999",
|
||||||
|
provider_options=provider_options or {},
|
||||||
|
)
|
||||||
|
info = {
|
||||||
|
"context_size": server_context_size,
|
||||||
|
"supports_vision": False,
|
||||||
|
"supports_audio": False,
|
||||||
|
"supports_tools": False,
|
||||||
|
"supports_reasoning": False,
|
||||||
|
"media_marker": "<__media__>",
|
||||||
|
}
|
||||||
|
cls = PROVIDERS[GenAIProviderEnum.llamacpp]
|
||||||
|
with patch.object(cls, "_get_model_info", return_value=info):
|
||||||
|
return cls(cfg, timeout=5)
|
||||||
|
|
||||||
|
def test_server_context_size_used_without_override(self):
|
||||||
|
client = self._validated_client(4096)
|
||||||
|
self.assertEqual(client.get_context_size(), 4096)
|
||||||
|
|
||||||
|
def test_provider_options_context_size_overrides_server(self):
|
||||||
|
client = self._validated_client(4096, {"context_size": 32768})
|
||||||
|
self.assertEqual(client.get_context_size(), 32768)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
unittest.main()
|
unittest.main()
|
||||||
|
|||||||
Reference in New Issue
Block a user