mirror of
https://github.com/Paillat-dev/Botator.git
synced 2026-01-02 17:24:55 +00:00
🔧 chore(requirements.txt): comment out py-cord and add pycord from GitHub repository to use the latest version
🔧 chore(ChatProcess.py): import fetch_messages_history function from Chat module to use it in Chat class 🔧 chore(ChatProcess.py): import moderate and ModerationError from utils.misc module to use them in Chat class 🔧 chore(Chat.py): add fetch_messages_history function to fetch message history from a channel 🔧 chore(Chat.py): add formatContext function to format the context for the bot to use 🔧 chore(Chat.py): raise an exception if no openai api key is set 🔧 chore(Chat.py): add logic to filter and format messages for the context 🔧 chore(Chat.py): fix typo in the import statement for ModerationError 🔧 chore(Chat.py): fix typo in the import statement for moderate 🔧 chore(Chat.py): fix typo in the import statement for fetch_messages_history 🔧 chore(prompts.py): create prompts dictionary and read chat and text prompts from files for each character 🔧 chore(prompts.py): create createPrompt function to create a prompt from the messages list 🔧 chore(prompts.py): create createTextPrompt function to create a text prompt from the messages list 🔧 chore(prompts.py): create createChatPrompt function to create a chat prompt from the messages list 🔧 chore(requesters/llama.py): create llama function as a placeholder 🔧 chore(requesters/llama2.py): create llama2 function as a placeholder 🔧 chore(requesters/openaiChat.py): import openai_caller from utils.openaicaller module 🔧 chore(requesters/openaiChat.py): create openaiChat function as a placeholder 🔧 chore(requesters/openaiText.py): create openaiText function as a placeholder 🔧 chore(requesters/request.py): import openaiChat, openaiText, llama, and llama2 functions from respective modules 🔧 chore(requesters/request.py): create request function to handle different models and make requests
This commit is contained in:
75
src/chatUtils/prompts.py
Normal file
75
src/chatUtils/prompts.py
Normal file
@@ -0,0 +1,75 @@
|
||||
import datetime
|
||||
|
||||
from src.utils.variousclasses import models, characters, apis
|
||||
|
||||
promts = {}
|
||||
for character in characters.reverseMatchingDict.keys():
|
||||
with open(
|
||||
f"src/chatUtils/prompts/{character}/chat.txt", "r", encoding="utf-8"
|
||||
) as f:
|
||||
promts[character]["chat"] = f.read()
|
||||
|
||||
with open(
|
||||
f"src/chatUtils/prompts/{character}/text.txt", "r", encoding="utf-8"
|
||||
) as f:
|
||||
promts[character]["text"] = f.read()
|
||||
|
||||
|
||||
def createPrompt(
|
||||
messages: list[dict],
|
||||
model: str,
|
||||
character: str,
|
||||
type: str,
|
||||
guildName: str,
|
||||
channelName: str,
|
||||
) -> str:
|
||||
"""
|
||||
Creates a prompt from the messages list
|
||||
"""
|
||||
if type == "chat":
|
||||
prompt = (
|
||||
createChatPrompt(messages, model, character)
|
||||
.replace("[server-name]", guildName)
|
||||
.replace("[channel-name]", channelName)
|
||||
.replace(
|
||||
"[datetime]", datetime.datetime.utcnow().strftime("%d/%m/%Y %H:%M:%S")
|
||||
)
|
||||
)
|
||||
elif type == "text":
|
||||
prompt = (
|
||||
createTextPrompt(messages, model, character)
|
||||
.replace("[server-name]", guildName)
|
||||
.replace("[channel-name]", channelName)
|
||||
.replace(
|
||||
"[datetime]", datetime.datetime.utcnow().strftime("%d/%m/%Y %H:%M:%S")
|
||||
)
|
||||
)
|
||||
else:
|
||||
raise ValueError("Invalid type")
|
||||
return prompt
|
||||
|
||||
|
||||
def createTextPrompt(messages: list[dict], model: str, character: str) -> str:
|
||||
"""
|
||||
Creates a text prompt from the messages list
|
||||
"""
|
||||
global promts
|
||||
prompt = promts[character]["text"]
|
||||
for message in messages:
|
||||
if message.name == "assistant":
|
||||
message.name = character
|
||||
prompt += f"{message['name']}: {message['content']} <|endofmessage|>\n"
|
||||
prompt += f"{character}:"
|
||||
|
||||
return prompt
|
||||
|
||||
|
||||
def createChatPrompt(messages: list[dict], model: str, character: str) -> str:
|
||||
"""
|
||||
Creates a chat prompt from the messages list
|
||||
"""
|
||||
global promts
|
||||
prompt = promts[character]["chat"]
|
||||
final_prompt = [{"role": "system", "content": prompt}]
|
||||
final_prompt.extend(messages)
|
||||
return final_prompt
|
||||
Reference in New Issue
Block a user