AI story: remove exceptions from templates, fix minichat, fix autotextarea, add gemma
This commit is contained in:
parent
b8090dac86
commit
763085726b
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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]);
|
||||
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue