rrg92 commited on
Commit
1cb6ba7
·
1 Parent(s): 360debf

Updated to most recent models and add ts in logging

Browse files
Files changed (2) hide show
  1. docker-compose.yml +1 -1
  2. server.js +38 -25
docker-compose.yml CHANGED
@@ -1,6 +1,6 @@
1
  services:
2
  jaycoach:
3
- image: jaycoach
4
  environment:
5
  - HF_TOKEN=$HF_TOKEN
6
  ports:
 
1
  services:
2
  jaycoach:
3
+ build: .
4
  environment:
5
  - HF_TOKEN=$HF_TOKEN
6
  ports:
server.js CHANGED
@@ -2,15 +2,16 @@ const express = require('express')
2
  const app = express()
3
  const port = 8080
4
 
5
- process.on('uncaughtException', err => console.log('JayCoach:Exception:', err))
6
 
7
  const hfToken = process.env.HF_TOKEN
8
 
9
 
10
  const MODELS = {
11
 
12
- 'phi3': {
13
- name: 'microsoft/Phi-3-mini-128k-instruct'
 
14
  ,prompt: function(prompt){
15
  return [
16
  "<|user|>"
@@ -21,22 +22,21 @@ const MODELS = {
21
  }
22
  }
23
 
24
- ,'phi3mini4': {
25
- name: 'microsoft/Phi-3-mini-4k-instruct'
 
26
  ,prompt: function(prompt){
27
  return [
28
- "<|user|>"
29
- ,prompt
30
- +"<|end|>"
31
- ,"<|assistant|>"
32
  ].join("\n")
33
  }
34
  }
35
 
36
 
37
-
38
- ,'lama': {
39
- name: 'meta-llama/Meta-Llama-3-8B-Instruct'
40
  ,prompt: function(prompt){
41
  return [
42
  "<|start_header_id|>user<|end_header_id|>"
@@ -46,8 +46,11 @@ const MODELS = {
46
  }
47
  }
48
 
49
- ,'mistral':{
50
- name: 'mistralai/Mistral-7B-Instruct-v0.3'
 
 
 
51
  ,prompt: function(prompt){
52
  return [
53
  "[INST]"+prompt+"[/INST]"
@@ -56,6 +59,7 @@ const MODELS = {
56
 
57
  }
58
 
 
59
  ,'gemma':{
60
  name: 'google/gemma-1.1-7b-it'
61
  ,prompt: function(prompt){
@@ -71,6 +75,13 @@ const MODELS = {
71
 
72
  }
73
 
 
 
 
 
 
 
 
74
 
75
  if(!hfToken){
76
  throw new Error('NO TOKEN!');
@@ -177,6 +188,7 @@ async function GetModelAnswer(model, prompt){
177
  while(i--){ // pra evitar um loop infinito, vai girar no maximo o numero de models...
178
  let ModelConfig = MODELS[model];
179
  let MyStats = ModelConfig.stats;
 
180
  console.log(MyStats);
181
  let InferenceApi = 'https://api-inference.huggingface.co/models/' + ModelConfig.name;
182
 
@@ -193,7 +205,7 @@ async function GetModelAnswer(model, prompt){
193
  }
194
  }
195
 
196
- console.log("Falando com a IA 🤖", model, ModelConfig.name)
197
  MyStats.total++;
198
  let StartTime = new Date();
199
  const response = await fetch(
@@ -206,11 +218,11 @@ async function GetModelAnswer(model, prompt){
206
  );
207
  let EndTime = new Date();
208
  let ElapsedTime = EndTime.getTime() - StartTime.getTime();
209
- console.log("Total", ElapsedTime);
210
 
211
  if(response.status != 200){
212
  MyStats.erros++;
213
- console.log('FAILED: Escolhendo outro...', response.status)
214
  if(StartIndex == null)
215
  StartIndex = ModelList.map(m => m.id).indexOf(model);
216
 
@@ -220,12 +232,12 @@ async function GetModelAnswer(model, prompt){
220
  NextIndex = 0;
221
 
222
  if(NextIndex == StartIndex){
223
- console.log("Fiz de tudo, mas não deu bom :(");
224
  throw new Error('SOME_SHIT_HAPPENS');
225
  }
226
 
227
  model = ModelList[NextIndex].id;
228
- console.log("Tentando com o ",model);
229
  continue;
230
  }
231
 
@@ -240,7 +252,7 @@ async function GetModelAnswer(model, prompt){
240
  if(MyStats.erros < 0) MyStats.erros = 0;
241
  }
242
 
243
- console.log("Ok, lendo o json...", response.status);
244
  const result = await response.json();
245
  LastWorkedModel = model;
246
  return {
@@ -331,7 +343,7 @@ async function Prompt(opts){
331
  ---
332
  `
333
 
334
- console.log("PromptLength: ", prompt.length, prompt);
335
  let answer = await GetModelAnswer(model, prompt);
336
  return answer;
337
  }
@@ -368,7 +380,7 @@ app.get('/error', async (req, res) => {
368
 
369
  let ModelInfo = MODELS[result.model]
370
 
371
- console.log("Respondido", TotalMs, result);
372
 
373
  let resp = result.result;
374
  if(!resp || !Array.isArray(resp)){
@@ -393,8 +405,9 @@ app.get('/error', async (req, res) => {
393
  ModelInfo.stats.erros += 0.05;
394
  }
395
 
396
- console.log("FullResp:"+gentext);
397
- console.log("Final:"+txtFinal);
 
398
  res.json({text:txtFinal, model:result.model, TotalMs})
399
  })
400
 
@@ -421,5 +434,5 @@ app.use(function(err, req, res, next) {
421
 
422
 
423
  app.listen(port, () => {
424
- console.log(`JayCoach running`)
425
  })
 
2
  const app = express()
3
  const port = 8080
4
 
5
+ process.on('uncaughtException', err => log('JayCoach:Exception:', err))
6
 
7
  const hfToken = process.env.HF_TOKEN
8
 
9
 
10
  const MODELS = {
11
 
12
+
13
+ 'phi3.5': {
14
+ name: 'microsoft/Phi-3.5-mini-instruct'
15
  ,prompt: function(prompt){
16
  return [
17
  "<|user|>"
 
22
  }
23
  }
24
 
25
+
26
+ ,'lama3.1': {
27
+ name: 'meta-llama/Meta-Llama-3.1-8B-Instruct'
28
  ,prompt: function(prompt){
29
  return [
30
+ "<|start_header_id|>user<|end_header_id|>"
31
+ ,prompt+"<|eot_id|><|start_header_id|>assistant<|end_header_id|>"
32
+ +""
 
33
  ].join("\n")
34
  }
35
  }
36
 
37
 
38
+ ,'lama3.2v': {
39
+ name: 'meta-llama/Llama-3.2-11B-Vision-Instruct'
 
40
  ,prompt: function(prompt){
41
  return [
42
  "<|start_header_id|>user<|end_header_id|>"
 
46
  }
47
  }
48
 
49
+
50
+
51
+
52
+ ,'mistral-small':{
53
+ name: 'mistralai/Mistral-Small-Instruct-2409'
54
  ,prompt: function(prompt){
55
  return [
56
  "[INST]"+prompt+"[/INST]"
 
59
 
60
  }
61
 
62
+
63
  ,'gemma':{
64
  name: 'google/gemma-1.1-7b-it'
65
  ,prompt: function(prompt){
 
75
 
76
  }
77
 
78
+ function log(m){
79
+ let d = new Date();
80
+ let diso = d.toISOString();
81
+
82
+ console.log(`${diso} ${m}`)
83
+ }
84
+
85
 
86
  if(!hfToken){
87
  throw new Error('NO TOKEN!');
 
188
  while(i--){ // pra evitar um loop infinito, vai girar no maximo o numero de models...
189
  let ModelConfig = MODELS[model];
190
  let MyStats = ModelConfig.stats;
191
+ log("Stats:");
192
  console.log(MyStats);
193
  let InferenceApi = 'https://api-inference.huggingface.co/models/' + ModelConfig.name;
194
 
 
205
  }
206
  }
207
 
208
+ log("Falando com a IA 🤖", model, ModelConfig.name)
209
  MyStats.total++;
210
  let StartTime = new Date();
211
  const response = await fetch(
 
218
  );
219
  let EndTime = new Date();
220
  let ElapsedTime = EndTime.getTime() - StartTime.getTime();
221
+ log("Total", ElapsedTime);
222
 
223
  if(response.status != 200){
224
  MyStats.erros++;
225
+ log('FAILED: Escolhendo outro...', response.status)
226
  if(StartIndex == null)
227
  StartIndex = ModelList.map(m => m.id).indexOf(model);
228
 
 
232
  NextIndex = 0;
233
 
234
  if(NextIndex == StartIndex){
235
+ log("Fiz de tudo, mas não deu bom :(");
236
  throw new Error('SOME_SHIT_HAPPENS');
237
  }
238
 
239
  model = ModelList[NextIndex].id;
240
+ log("Tentando com o ",model);
241
  continue;
242
  }
243
 
 
252
  if(MyStats.erros < 0) MyStats.erros = 0;
253
  }
254
 
255
+ log("Ok, lendo o json...", response.status);
256
  const result = await response.json();
257
  LastWorkedModel = model;
258
  return {
 
343
  ---
344
  `
345
 
346
+ log("PromptLength: ", prompt.length, prompt);
347
  let answer = await GetModelAnswer(model, prompt);
348
  return answer;
349
  }
 
380
 
381
  let ModelInfo = MODELS[result.model]
382
 
383
+ log("Respondido", TotalMs, result);
384
 
385
  let resp = result.result;
386
  if(!resp || !Array.isArray(resp)){
 
405
  ModelInfo.stats.erros += 0.05;
406
  }
407
 
408
+
409
+ log("FullResp:"+gentext);
410
+ log(`Final:${txtFinal}`);
411
  res.json({text:txtFinal, model:result.model, TotalMs})
412
  })
413
 
 
434
 
435
 
436
  app.listen(port, () => {
437
+ log(`JayCoach running`)
438
  })