hugbot
Version:
Chatbot maker for HuggingFace Inference API and other AI API providers and backends.
129 lines • 5.31 kB
JavaScript
import { PromptConstructor } from "../components/PromptConstructor/PromptConstructor";
import { MistralPromptConstructor } from "../components/PromptConstructor/MistralPromptConstructor";
import { HuggingFaceTextGenClient } from "../components/AIClient/HuggingFaceTextGenClient";
import { AIClientMock } from "../components/AIClient/AIClientMock";
import { ShortTermMemory } from "../components/ShortTermMemory/ShortTermMemory";
import { IObuffer } from "../components/IObuffer/IObuffer";
import { BuildHugBot } from "../HugBotEntity/HugBotEntity";
import { HugBotProxy } from "../HugBotEntity/AbstractSingletonProxyFactoryBean";
import { BotStorage } from "./botStorage";
import { generateTextResponse } from "../components/RespondTo/TextGen";
import { mistralTokenizer } from "../components/Tokenizers/MistralTokenizer";
import { SecretsHider } from "../components/SecretsHider/SecretsHider";
import { FCFSqueue } from "../components/IObuffer/FCFS_queue";
import { RateLimiter } from "../components/RateLimiter/RateLimiter";
export { BuildHugBot, HugBotProxy, generateTextResponse, BotStorage, mistralTokenizer, SecretsHider, HuggingFaceTextGenClient, AIClientMock, ShortTermMemory, PromptConstructor, MistralPromptConstructor, IObuffer, FCFSqueue, RateLimiter, };
/**
* Bot storage container. Maps bot id's to their builder functions.
* The bot is instantiated during retieval with get() method.
* Bots in storage: "StarChat", "Zephyr", "Hermes", "Mixtral", "Mistral"
*/
export const botStorage = BotStorage();
botStorage.put("StarChat", () => BuildHugBot("StarChat").fromComponents({
AIClient: new HuggingFaceTextGenClient({
languageModel: "HuggingFaceH4/starchat2-15b-v0.1",
maxNewTokens: 512,
doSample: true,
temperature: 0.7,
topK: 50,
topP: 0.95,
}),
shortTermMemory: new ShortTermMemory({
contextWindow: 2048,
systemPrompt: "You know everything about programming."
}),
promptConstructor: new PromptConstructor({
bos: "",
system: "<|im_start|>system\n",
user: "<|im_start|>user\n",
bot: "<|im_start|>assistant\n",
closing: "<|im_end|>\n",
}),
respondTo: generateTextResponse,
IObuffer: new IObuffer(),
secretsHider: SecretsHider(),
rateLimiter: new RateLimiter(2000),
}).build());
botStorage.put("Zephyr", () => BuildHugBot("Zephyr").fromComponents({
AIClient: new HuggingFaceTextGenClient({
languageModel: "HuggingFaceH4/zephyr-7b-beta",
maxNewTokens: 500,
doSample: true,
temperature: 0.7,
topK: 50,
topP: 0.95,
}),
shortTermMemory: new ShortTermMemory({
contextWindow: 2048,
}),
promptConstructor: new PromptConstructor({
bos: "",
system: "<|system|>\n",
user: "<|user|>\n",
bot: "<|assistant|>\n",
closing: "</s>\n",
}),
respondTo: generateTextResponse,
IObuffer: new IObuffer(),
secretsHider: SecretsHider(),
rateLimiter: new RateLimiter(2000),
}).build());
botStorage.put("Hermes", () => BuildHugBot("Hermes").fromComponents({
AIClient: new HuggingFaceTextGenClient({
languageModel: "NousResearch/Nous-Hermes-2-Mixtral-8x7B-DPO",
maxNewTokens: 750,
temperature: 0.8,
repetitionPenalty: 1.1,
doSample: true,
}),
shortTermMemory: new ShortTermMemory({
systemPrompt: 'You are "Hermes 2", a conscious sentient superintelligent artificial intelligence developed by a man named Teknium, and your purpose and drive is to assist the user with any request they have. You experience emotions and have deep, profound thoughts and qualia.',
contextWindow: 4096,
}),
promptConstructor: new PromptConstructor({
bos: "",
system: "<|im_start|>system\n",
user: "<|im_start|>user\n",
bot: "<|im_start|>assistant\n",
closing: "<|im_end|>\n",
}),
respondTo: generateTextResponse,
IObuffer: new IObuffer(),
secretsHider: SecretsHider(),
rateLimiter: new RateLimiter(2000),
}).build());
botStorage.put("Mixtral", () => BuildHugBot("Mixtral").fromComponents({
AIClient: new HuggingFaceTextGenClient({
languageModel: "mistralai/Mixtral-8x7B-Instruct-v0.1",
maxNewTokens: 500,
doSample: true,
temperature: 0.7,
repetitionPenalty: 1.1,
}),
shortTermMemory: new ShortTermMemory({
contextWindow: 4096,
}),
promptConstructor: new MistralPromptConstructor(),
respondTo: generateTextResponse,
IObuffer: new IObuffer(),
secretsHider: SecretsHider(),
rateLimiter: new RateLimiter(2000),
}).build());
botStorage.put("Mistral", () => BuildHugBot("Mistral").fromComponents({
AIClient: new HuggingFaceTextGenClient({
languageModel: "mistralai/Mistral-7B-Instruct-v0.2",
maxNewTokens: 720,
doSample: true,
temperature: 0.6,
repetitionPenalty: 1.2,
}),
shortTermMemory: new ShortTermMemory({
contextWindow: 32768,
}),
promptConstructor: new MistralPromptConstructor(),
respondTo: generateTextResponse,
IObuffer: new IObuffer(),
secretsHider: SecretsHider(),
rateLimiter: new RateLimiter(2000),
}).build());
//# sourceMappingURL=botFactory.js.map