v0.7.0 - Standard non cortex mode enabled
This commit is contained in:
102
cortex/router.py
102
cortex/router.py
@@ -331,6 +331,108 @@ async def run_reason(req: ReasonRequest):
|
||||
}
|
||||
|
||||
|
||||
# -------------------------------------------------------------------
|
||||
# /simple endpoint - Standard chatbot mode (no reasoning pipeline)
|
||||
# -------------------------------------------------------------------
|
||||
@cortex_router.post("/simple")
|
||||
async def run_simple(req: ReasonRequest):
|
||||
"""
|
||||
Standard chatbot mode - bypasses all cortex reasoning pipeline.
|
||||
Just a simple conversation loop like a typical chatbot.
|
||||
"""
|
||||
from datetime import datetime
|
||||
from llm.llm_router import call_llm
|
||||
|
||||
start_time = datetime.now()
|
||||
|
||||
logger.info(f"\n{'='*100}")
|
||||
logger.info(f"💬 SIMPLE MODE | Session: {req.session_id} | {datetime.now().strftime('%H:%M:%S.%f')[:-3]}")
|
||||
logger.info(f"{'='*100}")
|
||||
logger.info(f"📝 User: {req.user_prompt[:150]}...")
|
||||
logger.info(f"{'-'*100}\n")
|
||||
|
||||
# Get conversation history from context
|
||||
context_state = await collect_context(req.session_id, req.user_prompt)
|
||||
|
||||
# Build simple conversation history
|
||||
messages = []
|
||||
if context_state.get("recent_messages"):
|
||||
for msg in context_state["recent_messages"]:
|
||||
messages.append({
|
||||
"role": msg.get("role", "user"),
|
||||
"content": msg.get("content", "")
|
||||
})
|
||||
|
||||
# Add current user message
|
||||
messages.append({
|
||||
"role": "user",
|
||||
"content": req.user_prompt
|
||||
})
|
||||
|
||||
# Format messages into a simple prompt for the LLM
|
||||
conversation = ""
|
||||
for msg in messages:
|
||||
role = msg["role"]
|
||||
content = msg["content"]
|
||||
if role == "user":
|
||||
conversation += f"User: {content}\n\n"
|
||||
elif role == "assistant":
|
||||
conversation += f"Assistant: {content}\n\n"
|
||||
|
||||
conversation += "Assistant: "
|
||||
|
||||
# Get backend from env (default to OPENAI for standard mode)
|
||||
backend = os.getenv("STANDARD_MODE_LLM", "OPENAI")
|
||||
temperature = req.temperature if req.temperature is not None else 0.7
|
||||
|
||||
# Direct LLM call
|
||||
try:
|
||||
response = await call_llm(
|
||||
prompt=conversation,
|
||||
backend=backend,
|
||||
temperature=temperature,
|
||||
max_tokens=2048
|
||||
)
|
||||
except Exception as e:
|
||||
logger.error(f"❌ LLM call failed: {e}")
|
||||
response = f"Error: {str(e)}"
|
||||
|
||||
# Update session with the exchange
|
||||
try:
|
||||
update_last_assistant_message(req.session_id, response)
|
||||
add_exchange_internal({
|
||||
"session_id": req.session_id,
|
||||
"role": "user",
|
||||
"content": req.user_prompt
|
||||
})
|
||||
add_exchange_internal({
|
||||
"session_id": req.session_id,
|
||||
"role": "assistant",
|
||||
"content": response
|
||||
})
|
||||
except Exception as e:
|
||||
logger.warning(f"⚠️ Session update failed: {e}")
|
||||
|
||||
duration = (datetime.now() - start_time).total_seconds() * 1000
|
||||
|
||||
logger.info(f"\n{'='*100}")
|
||||
logger.info(f"✨ SIMPLE MODE COMPLETE | Session: {req.session_id} | Total: {duration:.0f}ms")
|
||||
logger.info(f"📤 Output: {len(response)} chars")
|
||||
logger.info(f"{'='*100}\n")
|
||||
|
||||
return {
|
||||
"draft": response,
|
||||
"neutral": response,
|
||||
"persona": response,
|
||||
"reflection": "",
|
||||
"session_id": req.session_id,
|
||||
"context_summary": {
|
||||
"message_count": len(messages),
|
||||
"mode": "standard"
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
# -------------------------------------------------------------------
|
||||
# /ingest endpoint (internal)
|
||||
# -------------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user