1
0
Fork 0

AI story: remove exceptions from templates, fix minichat, fix autotextarea, add gemma

This commit is contained in:
Pabloader 2024-11-04 13:25:49 +00:00
parent b8090dac86
commit 763085726b
4 changed files with 9 additions and 6 deletions

View File

@ -6,10 +6,10 @@ import { useIsVisible } from '@common/hooks/useIsVisible';
export const AutoTextarea = (props: JSX.HTMLAttributes<HTMLTextAreaElement>) => {
const { value } = props;
const ref = useRef<HTMLTextAreaElement>(null);
const isVisible = useIsVisible(ref, true);
const isVisible = useIsVisible(ref);
useEffect(() => {
if (ref.current) {
if (ref.current && isVisible) {
const area = ref.current;
area.style.height = '0'; // reset

View File

@ -58,11 +58,11 @@ export const MiniChat = ({ history = [], buttons = {}, open, onClose }: IProps)
for await (const chunk of generate(prompt)) {
text += chunk;
setMessages(MessageTools.updateSwipe(newMessages, messageId, text));
setMessages(MessageTools.updateSwipe(newMessages, messageId, { content: text.trim() }));
}
setMessages([
...MessageTools.updateSwipe(newMessages, messageId, MessageTools.trimSentence(text)),
...MessageTools.updateSwipe(newMessages, messageId, { content: MessageTools.trimSentence(text) }),
MessageTools.create('', 'user', true),
]);
MessageTools.playReady();
@ -78,7 +78,7 @@ export const MiniChat = ({ history = [], buttons = {}, open, onClose }: IProps)
const handleChange = useCallback((i: number, e: InputEvent) => {
if (e.target instanceof HTMLTextAreaElement) {
setMessages(MessageTools.updateSwipe(messages, i, e.target.value));
setMessages(MessageTools.updateSwipe(messages, i, { content: e.target.value }));
}
}, [messages]);

View File

@ -47,6 +47,8 @@ export enum Instruct {
MISTRAL = `{%- if messages[0]['role'] == 'system' %}{%- set system_message = messages[0]['content'] %}{%- set loop_messages = messages[1:] %}{%- else %}{%- set loop_messages = messages %}{%- endif %}{%- for message in loop_messages %}{%- if message['role'] == 'user' %}{%- if loop.first and system_message is defined %}{{- ' [INST] ' + system_message + '\\n\\n' + message['content'] + ' [/INST]' }}{%- else %}{{- ' [INST] ' + message['content'] + ' [/INST]' }}{%- endif %}{%- elif message['role'] == 'assistant' %}{{- ' ' + message['content'] + '</s>'}}{%- endif %}{%- endfor %}`,
GEMMA = `{% for message in messages %}{% if (message['role'] == 'assistant') %}{% set role = 'model' %}{% else %}{% set role = message['role'] %}{% endif %}{{ '<start_of_turn>' + role + '\n' + message['content'] | trim + '<end_of_turn>\n' }}{% endfor %}{% if add_generation_prompt %}{{'<start_of_turn>model\n'}}{% endif %}`,
ALPACA = `{% for message in messages %}{% if message['role'] == 'system' and message['content'] %}{{ message['content'] + '\\n\\n'}}{% elif message['role'] == 'user' %}{{'### Instruction:\\n\\n' + message['content'] + '\\n\\n'}}{% elif message['role'] == 'assistant' %}{{'### Response:\\n\\n' + message['content'] + '\\n\\n'}}{% endif %}{% endfor %}{% if add_generation_prompt %}{{ '### Response:\\n\\n' }}{% endif %}`,
};
@ -66,7 +68,7 @@ export const loadContext = (): IContext => {
lore: '',
userPrompt: `{% if prompt %}{% if isStart %}Start{% else %}Continue{% endif %} this story, taking information into account: {{ prompt | trim }}
Remember that this story should be infinite and go forever. Avoid cliffhangers and pauses, be creative.{% elif isStart %}Write a novel using information above as a reference. Make sure to follow the lore exactly and avoid cliffhangers.{% else %}Continue the story forward. Avoid cliffhangers and pauses.{% endif %}`,
summarizePrompt: 'Make the following text shorter, keeping all important details:\n\n{{ message }}\n\nYour answer should only contain the shortened text.',
summarizePrompt: 'Shrink following text down to one paragraph, keeping all important details, your answer should contain only the shortened text:\n\n{{ message }}',
bannedWords: [],
messages: [],
triggerNext: false,

View File

@ -269,6 +269,7 @@ export namespace Huggingface {
try {
let template = compiledTemplates.get(templateString);
if (!template) {
templateString = templateString.replace(/raise_exception\(('[^')]+'|"[^")]+")\)/g, `''`)
template = new Template(templateString);
compiledTemplates.set(templateString, template);
}