From 57ab59d34249c6d2b957cd71bcb82794ed766417 Mon Sep 17 00:00:00 2001 From: matty Date: Mon, 7 Jul 2025 18:26:09 +0000 Subject: [PATCH] separation of concerns --- src/main.ts | 20 +++++++++++++++----- src/util.ts | 7 +------ 2 files changed, 16 insertions(+), 11 deletions(-) diff --git a/src/main.ts b/src/main.ts index 2fc50da..580ae69 100644 --- a/src/main.ts +++ b/src/main.ts @@ -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 => { @@ -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(); diff --git a/src/util.ts b/src/util.ts index 5b43a13..0123b24 100644 --- a/src/util.ts +++ b/src/util.ts @@ -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 => { +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}`);