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 = { export const envConfig = {
pleromaInstanceUrl: process.env.PLEROMA_INSTANCE_URL || "", pleromaInstanceUrl: process.env.PLEROMA_INSTANCE_URL || "",
pleromaInstanceDomain: process.env.PLEROMA_INSTANCE_DOMAIN || "", 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 whitelistedDomains: process.env.WHITELISTED_DOMAINS
? process.env.WHITELISTED_DOMAINS.split(",") ? process.env.WHITELISTED_DOMAINS.split(",")
: [process.env.PLEROMA_INSTANCE_DOMAIN], : [process.env.PLEROMA_INSTANCE_DOMAIN],
@ -42,9 +42,14 @@ export const envConfig = {
}; };
const ollamaConfig: OllamaConfigOptions = { 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 ( const generateOllamaRequest = async (
notification: Notification notification: Notification
): Promise<OllamaResponse | undefined> => { ): Promise<OllamaResponse | undefined> => {
@ -68,9 +73,9 @@ const generateOllamaRequest = async (
const ollamaRequestBody: OllamaRequest = { const ollamaRequestBody: OllamaRequest = {
model: ollamaModel, model: ollamaModel,
system: ollamaSystemPrompt, system: ollamaSystemPrompt,
prompt: `@${notification.status.account.fqn} says: ${trimInputData( prompt: `[INST] @${
notification.status.content notification.status.account.fqn
)}`, } says: ${trimInputData(notification.status.content)} [/INST]`,
stream: false, stream: false,
options: ollamaConfig, options: ollamaConfig,
}; };
@ -162,4 +167,9 @@ console.log(
console.log( console.log(
`Accepting prompts from: ${envConfig.whitelistedDomains.join(", ")}` `Accepting prompts from: ${envConfig.whitelistedDomains.join(", ")}`
); );
console.log(
`Using model: ${envConfig.ollamaModel}\nConfig: ${JSON.stringify(
ollamaConfig
)}`
);
await beginFetchCycle(); await beginFetchCycle();

View File

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