dynamic config
Browse files- app.py +3 -1
- front/src/config.ts +14 -2
- front/src/utils/prompts.ts +2 -3
app.py
CHANGED
|
@@ -4,6 +4,7 @@ import gradio as gr
|
|
| 4 |
import os
|
| 5 |
import random
|
| 6 |
import torch
|
|
|
|
| 7 |
|
| 8 |
print(os.system("""
|
| 9 |
cd front;
|
|
@@ -15,6 +16,7 @@ cd ..;
|
|
| 15 |
CHAR_LIMIT = 5000 # test
|
| 16 |
|
| 17 |
SPACE_ID = os.environ.get('SPACE_ID')
|
|
|
|
| 18 |
|
| 19 |
CUDA_AVAILABLE = torch.cuda.is_available()
|
| 20 |
models = {gpu: KModel().to('cuda' if gpu else 'cpu').eval() for gpu in [False] + ([True] if CUDA_AVAILABLE else [])}
|
|
@@ -162,7 +164,7 @@ head = f'''
|
|
| 162 |
if (!localStorage.getItem('debug') && !window.location.href.match(/debug=1/)) {{
|
| 163 |
console.log('Attaching frontend app');
|
| 164 |
const frontendApp = document.createElement('iframe');
|
| 165 |
-
frontendApp.src = '/gradio_api/file=./front/dist/index.html?SPACE_ID={SPACE_ID}';
|
| 166 |
frontendApp.style = 'position: fixed; top: 0; left: 0; width: 100%; height: 100%; border: none; z-index: 999999;';
|
| 167 |
document.body.appendChild(frontendApp);
|
| 168 |
}}
|
|
|
|
| 4 |
import os
|
| 5 |
import random
|
| 6 |
import torch
|
| 7 |
+
from urllib.parse import quote
|
| 8 |
|
| 9 |
print(os.system("""
|
| 10 |
cd front;
|
|
|
|
| 16 |
CHAR_LIMIT = 5000 # test
|
| 17 |
|
| 18 |
SPACE_ID = os.environ.get('SPACE_ID')
|
| 19 |
+
LLM_ENDPOINT = os.environ.get('LLM_ENDPOINT', 'null')
|
| 20 |
|
| 21 |
CUDA_AVAILABLE = torch.cuda.is_available()
|
| 22 |
models = {gpu: KModel().to('cuda' if gpu else 'cpu').eval() for gpu in [False] + ([True] if CUDA_AVAILABLE else [])}
|
|
|
|
| 164 |
if (!localStorage.getItem('debug') && !window.location.href.match(/debug=1/)) {{
|
| 165 |
console.log('Attaching frontend app');
|
| 166 |
const frontendApp = document.createElement('iframe');
|
| 167 |
+
frontendApp.src = '/gradio_api/file=./front/dist/index.html?SPACE_ID={quote(SPACE_ID)}&LLM_ENDPOINT={quote(LLM_ENDPOINT)}';
|
| 168 |
frontendApp.style = 'position: fixed; top: 0; left: 0; width: 100%; height: 100%; border: none; z-index: 999999;';
|
| 169 |
document.body.appendChild(frontendApp);
|
| 170 |
}}
|
front/src/config.ts
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
export const CONFIG = {
|
| 2 |
llmEndpoint:
|
| 3 |
-
|
| 4 |
-
|
|
|
|
|
|
|
| 5 |
};
|
|
|
|
|
|
|
|
|
| 1 |
+
function getUrlParam(paramName: string): string | null {
|
| 2 |
+
const urlParams = new URLSearchParams(window.location.search);
|
| 3 |
+
return urlParams.get(paramName);
|
| 4 |
+
}
|
| 5 |
+
|
| 6 |
+
const SPACE_ID = getUrlParam('SPACE_ID');
|
| 7 |
+
const LLM_ENDPOINT = getUrlParam('LLM_ENDPOINT');
|
| 8 |
+
|
| 9 |
export const CONFIG = {
|
| 10 |
llmEndpoint:
|
| 11 |
+
LLM_ENDPOINT && LLM_ENDPOINT.length > 5
|
| 12 |
+
? LLM_ENDPOINT
|
| 13 |
+
: 'https://gnb1thady6h3noiz.us-east-1.aws.endpoints.huggingface.cloud/v1/chat/completions',
|
| 14 |
+
ttsSpaceId: SPACE_ID || 'ngxson/kokoro-podcast-generator',
|
| 15 |
};
|
| 16 |
+
|
| 17 |
+
console.log({ CONFIG });
|
front/src/utils/prompts.ts
CHANGED
|
@@ -16,7 +16,6 @@ Some rules:
|
|
| 16 |
- Only use base ASCII, do NOT use ALL CAPS, strings are wrapped inside "..."
|
| 17 |
- First turns should be the introduction for the theme and speakers.
|
| 18 |
- The script will be passed to TTS engine, make sure to write plain pronunciation, for example the www. must pronounced like "www dot"
|
| 19 |
-
- Sometimes, try inserting small words like "Yeah?", "Oh!" and set nextGapMilisecs to high negative number to simulate interruptions.
|
| 20 |
|
| 21 |
There is an example (it is truncated):
|
| 22 |
|
|
@@ -29,11 +28,11 @@ speakerNames:
|
|
| 29 |
turns:
|
| 30 |
- index: 0
|
| 31 |
speakerName: Alice
|
| 32 |
-
text: It wouldn't be better to follow on technology with Magnus Nystedt than to actually cross over using technology to Wellington International School and [Whiz Radio](+1). And who better to kick off the Whiz Radio segment than the person who motivates the students over at Whiz, Wellington International School, than Miss Davy Peel. [Welcome](+
|
| 33 |
nextGapMilisecs: 100
|
| 34 |
- index: 1
|
| 35 |
speakerName: Davy Peel
|
| 36 |
-
text: [Absolutely
|
| 37 |
nextGapMilisecs: 1000
|
| 38 |
\`\`\`
|
| 39 |
[END OF EXAMPLE]
|
|
|
|
| 16 |
- Only use base ASCII, do NOT use ALL CAPS, strings are wrapped inside "..."
|
| 17 |
- First turns should be the introduction for the theme and speakers.
|
| 18 |
- The script will be passed to TTS engine, make sure to write plain pronunciation, for example the www. must pronounced like "www dot"
|
|
|
|
| 19 |
|
| 20 |
There is an example (it is truncated):
|
| 21 |
|
|
|
|
| 28 |
turns:
|
| 29 |
- index: 0
|
| 30 |
speakerName: Alice
|
| 31 |
+
text: It wouldn't be better to follow on technology with Magnus Nystedt than to actually cross over using technology to [Wellington](+1) International School and [Whiz Radio](+1). And who better to kick off the Whiz Radio segment than the person who motivates the students over at Whiz, Wellington International School, than Miss Davy Peel. [Welcome](+2) ... Tell me, give me, give me the scoop here, because I, I came and talked to you a little while ago and said, what do you guys think about doing some kind of a [TEDx](+1) thing? And then I just sort of backed off.
|
| 32 |
nextGapMilisecs: 100
|
| 33 |
- index: 1
|
| 34 |
speakerName: Davy Peel
|
| 35 |
+
text: [Absolutely](+1)... An amazing opportunity to get the kids a bit of kind of creative freedom and, and a forum.
|
| 36 |
nextGapMilisecs: 1000
|
| 37 |
\`\`\`
|
| 38 |
[END OF EXAMPLE]
|