Spaces:
Sleeping
Sleeping
| import os | |
| import sys | |
| import types | |
| import pytest | |
| from pydantic import BaseModel | |
| def test_cognee_bootstrap_forces_cerebras_gemma_strict_json_schema(monkeypatch): | |
| from app.services.cognee_bootstrap import configure_cognee_llm | |
| calls = [] | |
| class FakeCogneeConfig: | |
| def set_llm_config(config): | |
| calls.append(config) | |
| def clear_cache(): | |
| calls.append("clear_cache") | |
| monkeypatch.setenv("CEREBRAS_API_KEY", "test-key") | |
| config = configure_cognee_llm(FakeCogneeConfig, clear_llm_client_cache=clear_cache) | |
| assert config["llm_provider"] == "openai" | |
| assert config["llm_model"] == "openai/gemma-4-31b" | |
| assert config["llm_endpoint"] == "https://api.cerebras.ai/v1" | |
| assert config["llm_api_key"] == "test-key" | |
| assert config["llm_instructor_mode"] == "json_schema_mode" | |
| assert config["llm_temperature"] == 0.0 | |
| assert config["llm_args"]["temperature"] == 0 | |
| assert "extra_body" not in config["llm_args"] | |
| assert calls == [config, "clear_cache"] | |
| assert os.environ["LLM_INSTRUCTOR_MODE"] == "json_schema_mode" | |
| assert os.environ["COGNEE_SKIP_CONNECTION_TEST"] == "true" | |
| assert os.environ["LLM_ARGS"] | |
| async def test_cognee_openai_adapter_uses_native_cerebras_structured_output(monkeypatch): | |
| from app.services import cognee_bootstrap | |
| class SummaryModel(BaseModel): | |
| summary: str | |
| description: str = "" | |
| class FakeOpenAIAdapter: | |
| def __init__(self): | |
| self.model = "openai/gemma-4-31b" | |
| self.endpoint = "https://api.cerebras.ai/v1" | |
| async def acreate_str_output(self, text_input, system_prompt, **kwargs): | |
| return "raw text" | |
| module_name = "fake_cognee_openai_adapter" | |
| fake_module = types.ModuleType(module_name) | |
| fake_module.OpenAIAdapter = FakeOpenAIAdapter | |
| monkeypatch.setitem(sys.modules, module_name, fake_module) | |
| monkeypatch.setattr(cognee_bootstrap, "COGNEE_OPENAI_ADAPTER_MODULE", module_name) | |
| calls = [] | |
| class FakeCerebrasClient: | |
| def structured_complete(self, messages, output_model, model=None, **kwargs): | |
| calls.append((messages, output_model, model, kwargs)) | |
| return output_model(summary="Recovered strict summary", description="") | |
| monkeypatch.setattr(cognee_bootstrap, "CerebrasClient", FakeCerebrasClient) | |
| assert cognee_bootstrap.patch_cognee_cerebras_structured_output() is True | |
| adapter = FakeOpenAIAdapter() | |
| result = await adapter.acreate_structured_output("chunk text", "summarize exactly", SummaryModel) | |
| assert result == SummaryModel(summary="Recovered strict summary", description="") | |
| assert calls[0][1] is SummaryModel | |
| assert calls[0][2] == "gemma-4-31b" | |
| assert calls[0][0] == [ | |
| {"role": "system", "content": "summarize exactly"}, | |
| {"role": "user", "content": "chunk text"}, | |
| ] | |