File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -100,21 +100,18 @@ cp .env.example .env
100100
101101Edit ` .env ` :
102102``` ini
103- ENVIRONMENT =development
104- LOG_LEVEL =INFO
105-
106103# LLM Providers (at least one key or use offline mode)
107104LLM_PROVIDER =gemini
105+ LLM_MODEL =gemini-2.0-flash
108106GEMINI_API_KEY =your_gemini_api_key_here
109107OPENAI_API_KEY =your_openai_api_key_here
110108
111109# Persistence
112110DATABASE_URL =postgresql+asyncpg://agentkit:agentkit_password@localhost:5432/agentkit
113111REDIS_URL =redis://localhost:6379/0
114112
115- # Security
116- API_KEYS =dev_key_1,dev_key_2
117- JWT_SECRET =super_secret_jwt_key_at_least_32_bytes_long
113+ # Security (comma-separated authorized keys)
114+ API_KEYS =ak_test_key_12345,ak_admin_key_67890
118115```
119116
120117### 4. Running with Docker Compose (Recommended)
Original file line number Diff line number Diff line change @@ -144,17 +144,24 @@ def build_fake_llm() -> LLMClient:
144144
145145
146146def build_llm (offline : bool , provider : str ) -> LLMClient :
147- """Resolve the LLM client, degrading to the scripted fake when no key is present ."""
147+ """Resolve the LLM client, requiring valid API keys unless running in offline/fake mode ."""
148148 if offline or provider == "fake" :
149149 return build_fake_llm ()
150150
151151 settings = get_settings ()
152152 key_present = settings .GEMINI_API_KEY if provider == "gemini" else settings .OPENAI_API_KEY
153153 if not key_present :
154- logger .warning ("No API key for provider '%s'; falling back to FakeLLMClient." , provider )
155- return build_fake_llm ()
154+ key_name = "GEMINI_API_KEY" if provider == "gemini" else "OPENAI_API_KEY"
155+ raise ValueError (
156+ f"API key for provider '{ provider } ' is missing ({ key_name } is not set). "
157+ f"To run offline without real API credentials, pass --offline or --provider fake."
158+ )
156159
157- return create_llm_client (provider )
160+ return create_llm_client (
161+ provider = provider ,
162+ api_key = key_present ,
163+ model = settings .LLM_MODEL ,
164+ )
158165
159166
160167async def run_demo (
Original file line number Diff line number Diff line change @@ -143,8 +143,8 @@ async def test_demo_script_runner() -> None:
143143
144144def test_build_llm_strict_live_mode (monkeypatch : pytest .MonkeyPatch ) -> None :
145145 """Verify build_llm requires API keys when live provider is requested without --offline."""
146- from examples .demo import build_llm
147146 from agentkit .config import get_settings
147+ from examples .demo import build_llm
148148
149149 monkeypatch .setenv ("GEMINI_API_KEY" , "" )
150150 monkeypatch .setenv ("OPENAI_API_KEY" , "" )
@@ -163,4 +163,3 @@ def test_build_llm_strict_live_mode(monkeypatch: pytest.MonkeyPatch) -> None:
163163
164164 fake_client_fake_prov = build_llm (offline = False , provider = "fake" )
165165 assert isinstance (fake_client_fake_prov , FakeLLMClient )
166-
You can’t perform that action at this time.
0 commit comments