feat: model overload error
This commit is contained in:
parent
2fbf412df4
commit
8ac057b80a
5 changed files with 21 additions and 11 deletions
|
|
@ -6,7 +6,7 @@ services:
|
||||||
environment:
|
environment:
|
||||||
- "AUTHORIZED_USERS=${AUTHORIZED_USERS}"
|
- "AUTHORIZED_USERS=${AUTHORIZED_USERS}"
|
||||||
- "SERVICE=${SERVICE:?https://bsky.social}"
|
- "SERVICE=${SERVICE:?https://bsky.social}"
|
||||||
- "DB_PATH=sqlite.db"
|
- DB_PATH=/data/sqlite.db
|
||||||
- "GEMINI_MODEL=${GEMINI_MODEL:-gemini-2.5-flash}"
|
- "GEMINI_MODEL=${GEMINI_MODEL:-gemini-2.5-flash}"
|
||||||
- "DID=${DID:?}"
|
- "DID=${DID:?}"
|
||||||
- "HANDLE=${HANDLE:?}"
|
- "HANDLE=${HANDLE:?}"
|
||||||
|
|
@ -14,4 +14,7 @@ services:
|
||||||
- "GEMINI_API_KEY=${GEMINI_API_KEY:?}"
|
- "GEMINI_API_KEY=${GEMINI_API_KEY:?}"
|
||||||
- "USE_JETSTREAM=${USE_JETSTREAM:-false}"
|
- "USE_JETSTREAM=${USE_JETSTREAM:-false}"
|
||||||
volumes:
|
volumes:
|
||||||
- aero_db:/sqlite.db
|
- "aero_db:/data"
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
aero_db:
|
||||||
|
|
|
||||||
|
|
@ -63,6 +63,9 @@ export const ai = new GoogleGenAI({
|
||||||
export const QUOTA_EXCEEDED_MESSAGE =
|
export const QUOTA_EXCEEDED_MESSAGE =
|
||||||
"You have exceeded your daily message quota (15). Please wait 24 hours before trying again.";
|
"You have exceeded your daily message quota (15). Please wait 24 hours before trying again.";
|
||||||
|
|
||||||
|
export const ERROR_MESSAGE =
|
||||||
|
"Sorry, I ran into an issue analyzing that post. Please try again.";
|
||||||
|
|
||||||
export const UNAUTHORIZED_MESSAGE =
|
export const UNAUTHORIZED_MESSAGE =
|
||||||
"I can’t make sense of your noise just yet. You’ll need to be whitelisted before I can help.";
|
"I can’t make sense of your noise just yet. You’ll need to be whitelisted before I can help.";
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -174,12 +174,17 @@ export async function handler(message: ChatMessage): Promise<void> {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error: any) {
|
||||||
logger.error("Error in post handler:", error);
|
logger.error("Error in post handler:", error);
|
||||||
|
let errorMsg = c.ERROR_MESSAGE;
|
||||||
|
|
||||||
|
if (error.error.code == 503) {
|
||||||
|
errorMsg =
|
||||||
|
"Sorry, the AI model is currently overloaded. Please try again later.";
|
||||||
|
}
|
||||||
|
|
||||||
await conversation.sendMessage({
|
await conversation.sendMessage({
|
||||||
text:
|
text: errorMsg,
|
||||||
"Sorry, I ran into an issue analyzing that post. Please try again.",
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ import db from "../db";
|
||||||
import { conversations, messages } from "../db/schema";
|
import { conversations, messages } from "../db/schema";
|
||||||
import { and, eq } from "drizzle-orm";
|
import { and, eq } from "drizzle-orm";
|
||||||
import { env } from "../env";
|
import { env } from "../env";
|
||||||
import { bot, MAX_GRAPHEMES } from "../core";
|
import { bot, ERROR_MESSAGE, MAX_GRAPHEMES } from "../core";
|
||||||
import { parsePost, parsePostImages, traverseThread } from "./post";
|
import { parsePost, parsePostImages, traverseThread } from "./post";
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
@ -137,8 +137,7 @@ export async function parseConversation(
|
||||||
};
|
};
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
convo.sendMessage({
|
convo.sendMessage({
|
||||||
text:
|
text: ERROR_MESSAGE,
|
||||||
"Sorry, I ran into an issue analyzing that post. Please try again.",
|
|
||||||
});
|
});
|
||||||
|
|
||||||
throw new Error("Failed to parse conversation");
|
throw new Error("Failed to parse conversation");
|
||||||
|
|
|
||||||
|
|
@ -42,8 +42,6 @@ async function parseQuote(post: Post) {
|
||||||
) return undefined;
|
) return undefined;
|
||||||
|
|
||||||
const record = (post.embed as RecordEmbed || RecordWithMediaEmbed).record;
|
const record = (post.embed as RecordEmbed || RecordWithMediaEmbed).record;
|
||||||
console.log("embed: ", post.embed);
|
|
||||||
console.log("record: ", record);
|
|
||||||
const embedPost = await c.bot.getPost(record.uri);
|
const embedPost = await c.bot.getPost(record.uri);
|
||||||
|
|
||||||
return await parsePost(embedPost, false);
|
return await parsePost(embedPost, false);
|
||||||
|
|
@ -63,7 +61,9 @@ export function parsePostImages(post: Post) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return images.map((image, idx) => parseImage(image, idx + 1));
|
return images.map((image, idx) => parseImage(image, idx + 1)).filter((img) =>
|
||||||
|
img.alt.length > 0
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
function parseImage(image: EmbedImage, index: number) {
|
function parseImage(image: EmbedImage, index: number) {
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue