separation of concerns

This commit is contained in:
2025-07-07 18:26:09 +00:00
parent 71ae54930c
commit 57ab59d342
2 changed files with 16 additions and 11 deletions

View File

@ -26,7 +26,7 @@ export const prisma = new PrismaClient();
export const envConfig = {
pleromaInstanceUrl: process.env.PLEROMA_INSTANCE_URL || "",
pleromaInstanceDomain: process.env.PLEROMA_INSTANCE_DOMAIN || "",
whitelistOnly: process.env.ONLY_WHITELIST === "true" ? true : false || "true",
whitelistOnly: process.env.ONLY_WHITELIST === "true" ? true : false,
whitelistedDomains: process.env.WHITELISTED_DOMAINS
? process.env.WHITELISTED_DOMAINS.split(",")
: [process.env.PLEROMA_INSTANCE_DOMAIN],
@ -42,9 +42,14 @@ export const envConfig = {
};
const ollamaConfig: OllamaConfigOptions = {
temperature: 1.2,
temperature: 1.4,
top_k: 100,
top_p: 0.8,
};
// this could be helpful
// https://replicate.com/blog/how-to-prompt-llama
const generateOllamaRequest = async (
notification: Notification
): Promise<OllamaResponse | undefined> => {
@ -68,9 +73,9 @@ const generateOllamaRequest = async (
const ollamaRequestBody: OllamaRequest = {
model: ollamaModel,
system: ollamaSystemPrompt,
prompt: `@${notification.status.account.fqn} says: ${trimInputData(
notification.status.content
)}`,
prompt: `[INST] @${
notification.status.account.fqn
} says: ${trimInputData(notification.status.content)} [/INST]`,
stream: false,
options: ollamaConfig,
};
@ -162,4 +167,9 @@ console.log(
console.log(
`Accepting prompts from: ${envConfig.whitelistedDomains.join(", ")}`
);
console.log(
`Using model: ${envConfig.ollamaModel}\nConfig: ${JSON.stringify(
ollamaConfig
)}`
);
await beginFetchCycle();

View File

@ -2,7 +2,6 @@ import striptags from "striptags";
import { prisma } from "./main.js";
import { envConfig } from "./main.js";
import { Notification } from "../types.js";
import { deleteNotification } from "./api.js";
const trimInputData = (input: string): string => {
const strippedInput = striptags(input);
@ -26,9 +25,7 @@ const recordPendingResponse = async (notification: Notification) => {
}
};
const isFromWhitelistedDomain = async (
notification: Notification
): Promise<boolean> => {
const isFromWhitelistedDomain = (notification: Notification): boolean => {
try {
const domain = notification.status.account.fqn.split("@")[1];
if (envConfig.whitelistedDomains.includes(domain)) {
@ -37,8 +34,6 @@ const isFromWhitelistedDomain = async (
console.log(
`Rejecting prompt request from non-whitelisted domain: ${domain}`
);
// delete the notification so we don't keep trying to fetch it
await deleteNotification(notification);
return false;
} catch (error: any) {
console.error(`Error with domain check: ${error.message}`);