MicroFish/backend/app/services
Pedro Renan af75f626fd feat(llm): add LLM_JSON_MODE to support runtimes without response_format
OpenAI-compatible runtimes differ in how they handle `response_format`:
cloud providers (OpenAI, Qwen/Dashscope, Ollama) accept
`{"type": "json_object"}`, while local runtimes like LM Studio and
llama.cpp server reject it with HTTP 400, only accepting `json_schema`
or `text`. This prevented MiroFish from running against fully-local
stacks.

Introduce `LLM_JSON_MODE` (default `json_object`) so users can opt out
of strict JSON response mode by setting `LLM_JSON_MODE=none`. The
existing prompt-based JSON + markdown-tolerant parsing already handles
the unstructured response path robustly, so `none` is viable for any
OpenAI-compatible endpoint.

Applied at all three call sites that send `response_format`:
- utils/llm_client.py (chat_json helper)
- services/oasis_profile_generator.py (persona synthesis)
- services/simulation_config_generator.py (time/event/agent config)

Documented in .env.example with guidance on when to pick each value.
2026-04-24 21:46:12 +01:00
..
__init__.py Implement Interview feature for agent interactions in simulations 2025-12-08 15:55:39 +08:00
graph_builder.py fix(i18n): pass locale to background threads via thread-local storage 2026-04-01 16:55:51 +08:00
oasis_profile_generator.py feat(llm): add LLM_JSON_MODE to support runtimes without response_format 2026-04-24 21:46:12 +01:00
ontology_generator.py Merge pull request #428 from Ghostubborn/feat/i18n 2026-04-02 14:27:04 +08:00
report_agent.py feat(i18n): replace all user-visible Chinese in report_agent.py 2026-04-01 17:44:52 +08:00
simulation_config_generator.py feat(llm): add LLM_JSON_MODE to support runtimes without response_format 2026-04-24 21:46:12 +01:00
simulation_ipc.py Implement Interview feature for agent interactions in simulations 2025-12-08 15:55:39 +08:00
simulation_manager.py feat(i18n): replace remaining hardcoded Chinese in progress callbacks 2026-04-01 16:53:29 +08:00
simulation_runner.py fix(i18n): pass locale to background threads via thread-local storage 2026-04-01 16:55:51 +08:00
text_processor.py Introduce Project ID for context management, finalizing the stateful API pipeline from file submission to graph construction. 2025-11-28 17:21:08 +08:00
zep_entity_reader.py feat(graph): implement pagination for fetching nodes and edges; add utility functions for streamlined data retrieval 2026-02-27 15:53:29 +08:00
zep_graph_memory_updater.py fix(i18n): pass locale to background threads via thread-local storage 2026-04-01 16:55:51 +08:00
zep_tools.py feat(i18n): replace all user-visible Chinese logger messages in zep_tools.py 2026-04-01 17:46:39 +08:00