revert: remove tablet Laya integration and restore pure OpenRouter Jev decision oracle

This commit is contained in:
katR 2026-09-22 19:55:03 +05:30
parent cf9aefc846
commit 455181290f
5 changed files with 13 additions and 174 deletions

View file

@ -67,37 +67,6 @@ export async function onRequestPost(context) {
const cleanQuestion = question.trim().slice(0, 300); const cleanQuestion = question.trim().slice(0, 300);
const startTime = Date.now(); const startTime = Date.now();
const layaUrl = env.LAYA_API_URL || "https://laya-api.oiupoyt.space";
try {
const layaRes = await fetch(`${layaUrl}/api/ask`, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ question: cleanQuestion }),
signal: AbortSignal.timeout(35000)
});
if (layaRes.ok) {
const data = await layaRes.json();
return json({
question: cleanQuestion,
answer: data.answer,
sentiment: data.sentiment,
noul: data.noul,
confidence: data.confidence,
probabilities: data.probabilities || {},
aphorismKey: data.aphorismKey || "signs_yes",
latency: Date.now() - startTime,
cost: 0,
usage: { prompt_tokens: data.raw?.usage?.input_tokens ?? 38, completion_tokens: 0 },
model: data.model || "convaiinnovations/laya-typed-decisions",
engine: "Laya System 1 (Android Tablet)",
tablet: true,
raw: data
});
}
} catch (e) {
// Fall back to OpenRouter
}
try { try {
const payload = { const payload = {
model: MODEL, model: MODEL,

View file

@ -4,23 +4,10 @@ const REPO_API_KEY = "sk-or-v1-6a1268b4a6aac87d2af72e859d6653bac1344ae4f99cfaf13
export async function onRequestGet(context) { export async function onRequestGet(context) {
const { env } = context; const { env } = context;
let layaOnline = false;
let layaData = null;
const layaUrl = env.LAYA_API_URL || "https://laya-api.oiupoyt.space";
try {
const res = await fetch(`${layaUrl}/api/status`, { signal: AbortSignal.timeout(2500) });
if (res.ok) {
layaData = await res.json();
layaOnline = Boolean(layaData.status === "online" || layaData.ready);
}
} catch (e) {}
return new Response(JSON.stringify({ return new Response(JSON.stringify({
status: "online", status: "online",
model: layaOnline ? (layaData?.model || "convaiinnovations/laya-typed-decisions") : "typesafe/jev-1.13", model: "typesafe/jev-1.13",
engine: layaOnline ? "Laya System 1 (Tablet via Tunnel)" : "TypeSafe Jev (Cloudflare Pages Edge)", engine: "TypeSafe Jev (Cloudflare Pages Edge)",
tablet: layaOnline,
hasKey: Boolean(env.OPENROUTER_API_KEY || REPO_API_KEY), hasKey: Boolean(env.OPENROUTER_API_KEY || REPO_API_KEY),
keySource: env.OPENROUTER_API_KEY ? "env" : "repo" keySource: env.OPENROUTER_API_KEY ? "env" : "repo"
}), { }), {

View file

@ -19,7 +19,6 @@ const REPO_API_KEY = 'sk-or-v1-6a1268b4a6aac87d2af72e859d6653bac1344ae4f99cfaf13
const OPENROUTER_API_KEY = process.env.OPENROUTER_API_KEY || REPO_API_KEY; const OPENROUTER_API_KEY = process.env.OPENROUTER_API_KEY || REPO_API_KEY;
const JEV_DECISIONS_URL = 'https://openrouter.ai/api/alpha/decisions'; const JEV_DECISIONS_URL = 'https://openrouter.ai/api/alpha/decisions';
const MODEL = 'typesafe/jev-1.13'; const MODEL = 'typesafe/jev-1.13';
const LAYA_API_URL = process.env.LAYA_API_URL || 'http://192.168.0.103:8888';
if (!process.env.OPENROUTER_API_KEY) { if (!process.env.OPENROUTER_API_KEY) {
console.warn('[jev-8ball] OPENROUTER_API_KEY is not set — using the in-repo key.'); console.warn('[jev-8ball] OPENROUTER_API_KEY is not set — using the in-repo key.');
@ -56,29 +55,11 @@ const APHORISMS = {
}; };
// GET /api/status // GET /api/status
app.get('/api/status', async (req, res) => { app.get('/api/status', (req, res) => {
let layaOnline = false;
let layaData = null;
try {
const layaRes = await fetch(`${LAYA_API_URL}/api/status`, {
signal: AbortSignal.timeout(1200)
});
if (layaRes.ok) {
layaData = await layaRes.json();
layaOnline = Boolean(layaData.status === 'online' || layaData.ready);
}
} catch (err) {
layaOnline = false;
}
res.json({ res.json({
status: 'online', status: 'online',
model: layaOnline ? (layaData?.model || 'convaiinnovations/laya-typed-decisions') : MODEL, model: MODEL,
engine: layaOnline ? 'Laya System 1 Decision Model (Android Tablet)' : 'TypeSafe Jev (Cloud Decision Engine)', engine: 'TypeSafe Jev (Non-autoregressive System One)',
tablet: layaOnline,
layaUrl: LAYA_API_URL,
layaInfo: layaData,
hasKey: Boolean(OPENROUTER_API_KEY), hasKey: Boolean(OPENROUTER_API_KEY),
keySource: process.env.OPENROUTER_API_KEY ? 'env' : 'repo' keySource: process.env.OPENROUTER_API_KEY ? 'env' : 'repo'
}); });
@ -98,44 +79,6 @@ app.post('/api/ask', async (req, res) => {
const cleanQuestion = question.trim().slice(0, 300); const cleanQuestion = question.trim().slice(0, 300);
const startTime = performance.now(); const startTime = performance.now();
// 1. Attempt inference on Android Tablet running Laya System 1
try {
const layaRes = await fetch(`${LAYA_API_URL}/api/ask`, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ question: cleanQuestion }),
signal: AbortSignal.timeout(35000)
});
if (layaRes.ok) {
const data = await layaRes.json();
const latency = Math.round(performance.now() - startTime);
return res.json({
question: cleanQuestion,
answer: data.answer,
sentiment: data.sentiment,
noul: data.noul,
confidence: data.confidence,
probabilities: data.probabilities || {},
aphorismKey: data.aphorismKey || 'signs_yes',
latency,
cost: 0,
usage: { prompt_tokens: data.raw?.usage?.input_tokens ?? 38, completion_tokens: 0 },
model: data.model || 'convaiinnovations/laya-typed-decisions',
engine: 'Laya System 1 (Android Tablet ARM64)',
tablet: true,
raw: data
});
}
} catch (layaErr) {
// Graceful fallback to OpenRouter Jev cloud API
console.warn(`[jev-8ball] Tablet Laya not reachable (${layaErr.message}), falling back to OpenRouter Jev`);
}
if (!OPENROUTER_API_KEY) {
return res.status(503).json({ error: 'Oracle is not configured. Set OPENROUTER_API_KEY.' });
}
try { try {
const payload = { const payload = {
model: MODEL, model: MODEL,
@ -288,6 +231,5 @@ app.use((req, res) => {
app.listen(PORT, () => { app.listen(PORT, () => {
console.log(`[jev-8ball] Server running at http://localhost:${PORT}`); console.log(`[jev-8ball] Server running at http://localhost:${PORT}`);
console.log(`[jev-8ball] Primary Engine: Laya on Android Tablet (${LAYA_API_URL})`); console.log(`[jev-8ball] Model: ${MODEL} via OpenRouter Decisions API`);
console.log(`[jev-8ball] Fallback Engine: ${MODEL} via OpenRouter Decisions API`);
}); });

View file

@ -63,30 +63,10 @@ export default {
// GET /api/status // GET /api/status
if (url.pathname === "/api/status") { if (url.pathname === "/api/status") {
let layaOnline = false;
let layaData = null;
if (env.LAYA_API_URL) {
try {
const layaRes = await fetch(`${env.LAYA_API_URL}/api/status`, {
signal: AbortSignal.timeout(2500)
});
if (layaRes.ok) {
layaData = await layaRes.json();
layaOnline = Boolean(layaData.status === "online" || layaData.ready);
}
} catch (e) {
layaOnline = false;
}
}
return json({ return json({
status: "online", status: "online",
model: layaOnline ? (layaData?.model || "convaiinnovations/laya-typed-decisions") : MODEL, model: MODEL,
engine: layaOnline ? "Laya System 1 Decision Model (Android Tablet)" : "TypeSafe Jev (Cloudflare Edge Worker)", engine: "TypeSafe Jev (Cloudflare Edge Worker)",
tablet: layaOnline,
layaUrl: env.LAYA_API_URL || null,
layaInfo: layaData,
hasKey: Boolean(resolveApiKey(env)), hasKey: Boolean(resolveApiKey(env)),
keySource: env.OPENROUTER_API_KEY ? "env" : "repo" keySource: env.OPENROUTER_API_KEY ? "env" : "repo"
}); });
@ -94,6 +74,11 @@ export default {
// POST /api/ask // POST /api/ask
if (url.pathname === "/api/ask" && request.method === "POST") { if (url.pathname === "/api/ask" && request.method === "POST") {
const apiKey = resolveApiKey(env);
if (!apiKey) {
return json({ error: "Oracle is not configured. Set the OPENROUTER_API_KEY secret." }, 503);
}
let body; let body;
try { try {
body = await request.json(); body = await request.json();
@ -109,47 +94,6 @@ export default {
const cleanQuestion = question.trim().slice(0, 300); const cleanQuestion = question.trim().slice(0, 300);
const startTime = Date.now(); const startTime = Date.now();
// 1. Primary Engine: Tablet Laya System 1 if configured in environment
if (env.LAYA_API_URL) {
try {
const layaRes = await fetch(`${env.LAYA_API_URL}/api/ask`, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ question: cleanQuestion }),
signal: AbortSignal.timeout(35000)
});
if (layaRes.ok) {
const data = await layaRes.json();
if (data && data.answer) {
return json({
question: cleanQuestion,
answer: data.answer,
sentiment: data.sentiment,
noul: data.noul,
confidence: data.confidence,
probabilities: data.probabilities || {},
aphorismKey: data.aphorismKey || "signs_yes",
latency: Date.now() - startTime,
cost: 0,
usage: { prompt_tokens: data.raw?.usage?.input_tokens ?? 38, completion_tokens: 0 },
model: data.model || "convaiinnovations/laya-typed-decisions",
engine: "Laya System 1 (Android Tablet)",
tablet: true,
raw: data
});
}
}
} catch (layaErr) {
// Fall back to OpenRouter Jev
}
}
// 2. Fallback Engine: OpenRouter Jev
const apiKey = resolveApiKey(env);
if (!apiKey) {
return json({ error: "Oracle is not configured. Set the OPENROUTER_API_KEY secret." }, 503);
}
try { try {
const payload = { const payload = {
model: MODEL, model: MODEL,

View file

@ -5,8 +5,5 @@
"assets": { "assets": {
"directory": "./public", "directory": "./public",
"binding": "ASSETS" "binding": "ASSETS"
},
"vars": {
"LAYA_API_URL": "https://laya-api.oiupoyt.space"
} }
} }