Skip to content

Commit

Permalink
running on-click scripts
Browse files Browse the repository at this point in the history
  • Loading branch information
innightwolfsleep committed Sep 13, 2023
1 parent cab25c7 commit 6842e53
Show file tree
Hide file tree
Showing 8 changed files with 112 additions and 384 deletions.
13 changes: 2 additions & 11 deletions generators/generator_langchain_llama_cpp.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,14 +27,7 @@ def __init__(self, model_path, n_ctx=2048, seed=0, n_gpu_layers=0):
)

def get_answer(
self,
prompt,
generation_params,
eos_token,
stopping_strings,
default_answer,
turn_template="",
**kwargs
self, prompt, generation_params, eos_token, stopping_strings, default_answer, turn_template="", **kwargs
):
if "max_tokens" in generation_params:
llm.max_tokens = generation_params["max_tokens"]
Expand All @@ -44,9 +37,7 @@ def get_answer(
llm.top_p = generation_params["top_p"]
if "top_k" in generation_params:
llm.top_k = generation_params["top_k"]
prompt_template = PromptTemplate(
template="{prompt}", input_variables=["prompt"]
)
prompt_template = PromptTemplate(template="{prompt}", input_variables=["prompt"])
llm.stop = stopping_strings
llm_chain = LLMChain(prompt=prompt_template, llm=self.llm)
answer = llm_chain.run(prompt)
Expand Down
17 changes: 3 additions & 14 deletions generators/generator_llama_cpp.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,19 +13,10 @@ def __init__(self, model_path: str, n_ctx=4096, seed=0, n_gpu_layers=0):
self.seed = seed
self.n_gpu_layers = n_gpu_layers
print(n_gpu_layers)
self.llm = Llama(
model_path=model_path, n_ctx=n_ctx, seed=seed, n_gpu_layers=n_gpu_layers
)
self.llm = Llama(model_path=model_path, n_ctx=n_ctx, seed=seed, n_gpu_layers=n_gpu_layers)

def get_answer(
self,
prompt,
generation_params,
eos_token,
stopping_strings,
default_answer: str,
turn_template="",
**kwargs
self, prompt, generation_params, eos_token, stopping_strings, default_answer: str, turn_template="", **kwargs
):
# Preparing, add stopping_strings
answer = default_answer
Expand Down Expand Up @@ -58,6 +49,4 @@ def get_model_list(self):

def load_model(self, model_file: str):
with open("models\\" + model_file, "r") as model:
self.llm: Llama = Llama(
model_path=model.read(), n_ctx=self.n_ctx, seed=self.seed
)
self.llm: Llama = Llama(model_path=model.read(), n_ctx=self.n_ctx, seed=self.seed)
44 changes: 9 additions & 35 deletions generators/generator_text_generator_webui.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,52 +15,30 @@ def __init__(self, model_path="", n_ctx=2048, n_gpu_layers=0):
pass

@staticmethod
def get_answer(
prompt,
generation_params,
eos_token,
stopping_strings,
default_answer,
turn_template="",
**kwargs
):
def get_answer(prompt, generation_params, eos_token, stopping_strings, default_answer, turn_template="", **kwargs):
generation_params.update({"turn_template": turn_template})
generation_params.update(
{
"stream": False,
"max_new_tokens": int(
generation_params.get(
"max_new_tokens", generation_params.get("max_length", 200)
)
generation_params.get("max_new_tokens", generation_params.get("max_length", 200))
),
"do_sample": bool(generation_params.get("do_sample", True)),
"temperature": float(generation_params.get("temperature", 0.5)),
"top_p": float(generation_params.get("top_p", 1)),
"typical_p": float(
generation_params.get(
"typical_p", generation_params.get("typical", 1)
)
),
"typical_p": float(generation_params.get("typical_p", generation_params.get("typical", 1))),
"epsilon_cutoff": float(generation_params.get("epsilon_cutoff", 0)),
"eta_cutoff": float(generation_params.get("eta_cutoff", 0)),
"tfs": float(generation_params.get("tfs", 1)),
"top_a": float(generation_params.get("top_a", 0)),
"repetition_penalty": float(
generation_params.get(
"repetition_penalty", generation_params.get("rep_pen", 1.1)
)
),
"repetition_penalty_range": int(
generation_params.get("repetition_penalty_range", 0)
),
"encoder_repetition_penalty": float(
generation_params.get("encoder_repetition_penalty", 1.0)
generation_params.get("repetition_penalty", generation_params.get("rep_pen", 1.1))
),
"repetition_penalty_range": int(generation_params.get("repetition_penalty_range", 0)),
"encoder_repetition_penalty": float(generation_params.get("encoder_repetition_penalty", 1.0)),
"top_k": int(generation_params.get("top_k", 0)),
"min_length": int(generation_params.get("min_length", 0)),
"no_repeat_ngram_size": int(
generation_params.get("no_repeat_ngram_size", 0)
),
"no_repeat_ngram_size": int(generation_params.get("no_repeat_ngram_size", 0)),
"num_beams": int(generation_params.get("num_beams", 1)),
"penalty_alpha": float(generation_params.get("penalty_alpha", 0)),
"length_penalty": float(generation_params.get("length_penalty", 1)),
Expand All @@ -77,16 +55,12 @@ def get_answer(
)
),
"ban_eos_token": bool(generation_params.get("ban_eos_token", False)),
"skip_special_tokens": bool(
generation_params.get("skip_special_tokens", True)
),
"skip_special_tokens": bool(generation_params.get("skip_special_tokens", True)),
"custom_stopping_strings": "", # leave this blank
"stopping_strings": generation_params.get("stopping_strings", []),
}
)
generator = generate_reply(
question=prompt, state=generation_params, stopping_strings=stopping_strings
)
generator = generate_reply(question=prompt, state=generation_params, stopping_strings=stopping_strings)
# This is "bad" implementation of getting answer, should be reworked
answer = default_answer
for a in generator:
Expand Down
12 changes: 2 additions & 10 deletions telegram_bot_generator.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,7 @@ def init(script="GeneratorLlamaCpp", model_path="", n_ctx=4096, n_gpu_layers=0):
n_gpu_layers: n_gpu_layers for llama
"""
try:
generator_class = getattr(
importlib.import_module("generators." + script), "Generator"
)
generator_class = getattr(importlib.import_module("generators." + script), "Generator")
except ImportError:
generator_class = getattr(
importlib.import_module("extensions.telegram_bot.generators." + script),
Expand All @@ -37,13 +35,7 @@ def init(script="GeneratorLlamaCpp", model_path="", n_ctx=4096, n_gpu_layers=0):


def get_answer(
prompt,
generation_params,
eos_token,
stopping_strings,
default_answer: str,
turn_template="",
**kwargs
prompt, generation_params, eos_token, stopping_strings, default_answer: str, turn_template="", **kwargs
) -> str:
"""Generate and return answer string.
Expand Down
4 changes: 1 addition & 3 deletions telegram_bot_sd_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,7 @@ def txt_to_image(self, prompt: str):
image = Image.open(io.BytesIO(base64.b64decode(i.split(",", 1)[0])))

png_payload = {"image": "data:image/png;base64," + i}
response2 = requests.post(
url=f"{self.url}/sdapi/v1/png-info", json=png_payload
)
response2 = requests.post(url=f"{self.url}/sdapi/v1/png-info", json=png_payload)
output_file = str(random.random()) + ".png"
png_info = PngImagePlugin.PngInfo()
png_info.add_text("parameters", response2.json().get("info"))
Expand Down
44 changes: 9 additions & 35 deletions telegram_bot_silero.py
Original file line number Diff line number Diff line change
Expand Up @@ -92,21 +92,11 @@ def get_audio(self, text: str, user_id: int, user: User):
if user.silero_speaker == "None" or user.silero_model_id == "None":
return None
if user.silero_speaker == "None" or user.silero_model_id == "None":
user.silero_model_id, user.silero_speaker = self.get_default_audio_settings(
user.language
)
if (
user.silero_speaker
not in self.voices[user.language]["male"]
+ self.voices[user.language]["female"]
):
user.silero_model_id, user.silero_speaker = self.get_default_audio_settings(
user.language
)
user.silero_model_id, user.silero_speaker = self.get_default_audio_settings(user.language)
if user.silero_speaker not in self.voices[user.language]["male"] + self.voices[user.language]["female"]:
user.silero_model_id, user.silero_speaker = self.get_default_audio_settings(user.language)
if user.silero_model_id not in self.voices[user.language]["model"]:
user.silero_model_id, user.silero_speaker = self.get_default_audio_settings(
user.language
)
user.silero_model_id, user.silero_speaker = self.get_default_audio_settings(user.language)

try:
model, _ = torch.hub.load(
Expand Down Expand Up @@ -142,9 +132,7 @@ def preprocess(self, string):
# For example, you need to remove the commas in numbers before expanding them
string = self.remove_surrounded_chars(string)
string = string.replace('"', "")
string = string.replace("\u201D", "").replace(
"\u201C", ""
) # right and left quote
string = string.replace("\u201D", "").replace("\u201C", "") # right and left quote
string = string.replace("\u201F", "") # italic looking quote
string = string.replace("\n", " ")
string = string.replace("*", " ! ")
Expand Down Expand Up @@ -192,11 +180,7 @@ def convert_num_locale(text):

start = match.start()
end = match.end()
result = (
result[0:start]
+ result[start:end].replace(".", "").replace(",", ".")
+ result[end : len(result)]
)
result = result[0:start] + result[start:end].replace(".", "").replace(",", ".") + result[end : len(result)]

# removes comma separators from existing American numbers
pattern = re.compile(r"(\d),(\d)")
Expand Down Expand Up @@ -262,19 +246,13 @@ def replace_abbreviations(self, string):

start = match.start()
end = match.end()
result = (
result[0:start]
+ self.replace_abbreviation(result[start:end])
+ result[end : len(result)]
)
result = result[0:start] + self.replace_abbreviation(result[start:end]) + result[end : len(result)]

return result

def replace_lowercase_abbreviations(self, string):
# abbreviations 1 to 4 characters long, separated by dots i.e. e.g.
pattern = re.compile(
rf"(^|[\s(.\'\[<])(([a-z]\.){{1,4}})({self.punctuation}|$)"
)
pattern = re.compile(rf"(^|[\s(.\'\[<])(([a-z]\.){{1,4}})({self.punctuation}|$)")
result = string
while True:
match = pattern.search(result)
Expand All @@ -283,11 +261,7 @@ def replace_lowercase_abbreviations(self, string):

start = match.start()
end = match.end()
result = (
result[0:start]
+ self.replace_abbreviation(result[start:end].upper())
+ result[end : len(result)]
)
result = result[0:start] + self.replace_abbreviation(result[start:end].upper()) + result[end : len(result)]

return result

Expand Down
32 changes: 8 additions & 24 deletions telegram_bot_user.py
Original file line number Diff line number Diff line change
Expand Up @@ -52,12 +52,8 @@ def __init__(
self.silero_speaker: str = silero_speaker
self.silero_model_id: str = silero_model_id
self.turn_template: str = turn_template
self.user_in: list = (
[]
) # "user input history": [["Hi!","Who are you?"]], need for regenerate option
self.history: list = (
[]
) # "history": [["Hi!", "Hi there!","Who are you?", "I am you assistant."]],
self.user_in: list = [] # "user input history": [["Hi!","Who are you?"]], need for regenerate option
self.history: list = [] # "history": [["Hi!", "Hi there!","Who are you?", "I am you assistant."]],
self.msg_id: list = [] # "msg_id": [143, 144, 145, 146],
self.greeting: str = greeting

Expand Down Expand Up @@ -136,15 +132,9 @@ def from_json(self, json_data: str):
self.context = data["context"] if "context" in data else ""
self.example = data["example"] if "example" in data else ""
self.language = data["language"] if "language" in data else "en"
self.silero_speaker = (
data["silero_speaker"] if "silero_speaker" in data else "None"
)
self.silero_model_id = (
data["silero_model_id"] if "silero_model_id" in data else "None"
)
self.turn_template = (
data["turn_template"] if "turn_template" in data else ""
)
self.silero_speaker = data["silero_speaker"] if "silero_speaker" in data else "None"
self.silero_model_id = data["silero_model_id"] if "silero_model_id" in data else "None"
self.turn_template = data["turn_template"] if "turn_template" in data else ""
self.user_in = data["user_in"]
self.history = data["history"]
self.msg_id = data["msg_id"]
Expand Down Expand Up @@ -192,9 +182,7 @@ def load_character_file(self, characters_dir_path: str, char_file: str):
self.turn_template = data["turn_template"]
self.context = ""
if "char_persona" in data:
self.context += (
f"{self.name2}'s Persona: {data['char_persona'].strip()}\n"
)
self.context += f"{self.name2}'s Persona: {data['char_persona'].strip()}\n"
if "context" in data:
self.context += f"{data['context'].strip()}\n"
if "world_scenario" in data:
Expand Down Expand Up @@ -242,12 +230,8 @@ def find_and_load_user_char_history(self, chat_id, history_dir_path: str):
True user history found and loaded, otherwise False
"""
chat_id = str(chat_id)
user_char_history_path = (
f"{history_dir_path}/{str(chat_id)}{self.char_file}.json"
)
user_char_history_old_path = (
f"{history_dir_path}/{str(chat_id)}{self.name2}.json"
)
user_char_history_path = f"{history_dir_path}/{str(chat_id)}{self.char_file}.json"
user_char_history_old_path = f"{history_dir_path}/{str(chat_id)}{self.name2}.json"
if exists(user_char_history_path):
return self.load_user_history(user_char_history_path)
elif exists(user_char_history_old_path):
Expand Down
Loading

0 comments on commit 6842e53

Please sign in to comment.