I don't remember
This commit is contained in:
		
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @ -4,5 +4,6 @@ node_modules | |||||||
| *.log | *.log | ||||||
| *.db | *.db | ||||||
| /dist | /dist | ||||||
|  | screenlog* | ||||||
|  |  | ||||||
| /generated/prisma | /generated/prisma | ||||||
|  | |||||||
							
								
								
									
										24
									
								
								src/main.ts
									
									
									
									
									
								
							
							
						
						
									
										24
									
								
								src/main.ts
									
									
									
									
									
								
							| @ -1,9 +1,11 @@ | |||||||
| import { | import { | ||||||
|   OllamaRequest, |  | ||||||
|   OllamaResponse, |  | ||||||
|   NewStatusBody, |   NewStatusBody, | ||||||
|   Notification, |   Notification, | ||||||
|   OllamaConfigOptions, |   OllamaConfigOptions, | ||||||
|  |   // OllamaChatRequest, | ||||||
|  |   // OllamaChatResponse, | ||||||
|  |   OllamaRequest, | ||||||
|  |   OllamaResponse, | ||||||
| } from "../types.js"; | } from "../types.js"; | ||||||
| import striptags from "striptags"; | import striptags from "striptags"; | ||||||
| import { PrismaClient } from "../generated/prisma/client.js"; | import { PrismaClient } from "../generated/prisma/client.js"; | ||||||
| @ -31,9 +33,7 @@ export const envConfig = { | |||||||
|     ? process.env.WHITELISTED_DOMAINS.split(",") |     ? process.env.WHITELISTED_DOMAINS.split(",") | ||||||
|     : [process.env.PLEROMA_INSTANCE_DOMAIN], |     : [process.env.PLEROMA_INSTANCE_DOMAIN], | ||||||
|   ollamaUrl: process.env.OLLAMA_URL || "", |   ollamaUrl: process.env.OLLAMA_URL || "", | ||||||
|   ollamaSystemPrompt: |   ollamaSystemPrompt: process.env.OLLAMA_SYSTEM_PROMPT, | ||||||
|     process.env.OLLAMA_SYSTEM_PROMPT || |  | ||||||
|     "You are a helpful AI assistant. Answer all questions concisely.", |  | ||||||
|   ollamaModel: process.env.OLLAMA_MODEL || "", |   ollamaModel: process.env.OLLAMA_MODEL || "", | ||||||
|   fetchInterval: process.env.FETCH_INTERVAL |   fetchInterval: process.env.FETCH_INTERVAL | ||||||
|     ? parseInt(process.env.FETCH_INTERVAL) |     ? parseInt(process.env.FETCH_INTERVAL) | ||||||
| @ -42,9 +42,10 @@ export const envConfig = { | |||||||
| }; | }; | ||||||
|  |  | ||||||
| const ollamaConfig: OllamaConfigOptions = { | const ollamaConfig: OllamaConfigOptions = { | ||||||
|   temperature: 1.4, |   temperature: 0.2, | ||||||
|   top_k: 100, |   top_p: 0.9, | ||||||
|   top_p: 0.8, |   top_k: 30, | ||||||
|  |   num_ctx: 2048, | ||||||
| }; | }; | ||||||
|  |  | ||||||
| // this could be helpful | // this could be helpful | ||||||
| @ -73,12 +74,10 @@ const generateOllamaRequest = async ( | |||||||
|       await storeUserData(notification); |       await storeUserData(notification); | ||||||
|       const ollamaRequestBody: OllamaRequest = { |       const ollamaRequestBody: OllamaRequest = { | ||||||
|         model: ollamaModel, |         model: ollamaModel, | ||||||
|  |         prompt: trimInputData(notification.status.content), | ||||||
|         system: ollamaSystemPrompt, |         system: ollamaSystemPrompt, | ||||||
|         prompt: `[INST] @${ |  | ||||||
|           notification.status.account.fqn |  | ||||||
|         } says: ${trimInputData(notification.status.content)} [/INST]`, |  | ||||||
|         stream: false, |         stream: false, | ||||||
|         options: ollamaConfig, |         // options: ollamaConfig, | ||||||
|       }; |       }; | ||||||
|       const response = await fetch(`${ollamaUrl}/api/generate`, { |       const response = await fetch(`${ollamaUrl}/api/generate`, { | ||||||
|         method: "POST", |         method: "POST", | ||||||
| @ -173,4 +172,5 @@ console.log( | |||||||
|     ollamaConfig |     ollamaConfig | ||||||
|   )}` |   )}` | ||||||
| ); | ); | ||||||
|  | console.log(`System prompt: ${envConfig.ollamaSystemPrompt}`); | ||||||
| await beginFetchCycle(); | await beginFetchCycle(); | ||||||
|  | |||||||
							
								
								
									
										33
									
								
								types.d.ts
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										33
									
								
								types.d.ts
									
									
									
									
										vendored
									
									
								
							| @ -36,7 +36,7 @@ export interface OllamaRequest { | |||||||
|   /** |   /** | ||||||
|    * Whatever system prompt you'd like to add to the model to make it more unique, or force it to respond a certain way. |    * Whatever system prompt you'd like to add to the model to make it more unique, or force it to respond a certain way. | ||||||
|    */ |    */ | ||||||
|   system: string; |   system?: string; | ||||||
|   /** |   /** | ||||||
|    * Whether to stream responses from the API, or have it sent all as one payload. |    * Whether to stream responses from the API, or have it sent all as one payload. | ||||||
|    */ |    */ | ||||||
| @ -47,6 +47,37 @@ export interface OllamaRequest { | |||||||
|   options?: OllamaConfigOptions; |   options?: OllamaConfigOptions; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | export interface OllamaChatRequest { | ||||||
|  |   model: string; | ||||||
|  |   messages: OllamaMessages[]; | ||||||
|  |   stream?: boolean = false; | ||||||
|  |   options?: OllamaConfigOptions; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | export interface OllamaChatResponse { | ||||||
|  |   model: string; | ||||||
|  |   created_at: string; | ||||||
|  |   message: OllamaChatResponseMessage; | ||||||
|  |   done_reason: "string"; | ||||||
|  |   done: boolean; | ||||||
|  |   total_duration: number; | ||||||
|  |   load_duration: number; | ||||||
|  |   prompt_eval_count: number; | ||||||
|  |   prompt_eval_duration: number; | ||||||
|  |   eval_count: number; | ||||||
|  |   eval_duration: number; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | interface OllamaChatResponseMessage { | ||||||
|  |   role: "assistant"; | ||||||
|  |   content: string; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | interface OllamaMessages { | ||||||
|  |   role: "system" | "user"; | ||||||
|  |   content: string; | ||||||
|  | } | ||||||
|  |  | ||||||
| export interface OllamaResponse { | export interface OllamaResponse { | ||||||
|   model: string; |   model: string; | ||||||
|   created_at: Date | string; |   created_at: Date | string; | ||||||
|  | |||||||
		Reference in New Issue
	
	Block a user