separation of concerns
This commit is contained in:
		
							
								
								
									
										20
									
								
								src/main.ts
									
									
									
									
									
								
							
							
						
						
									
										20
									
								
								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<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(); | ||||
|  | ||||
| @ -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}`); | ||||
|  | ||||
		Reference in New Issue
	
	Block a user