Добавление контекста в переброс
This commit is contained in:
parent
b02fde3fcd
commit
8bde017a31
|
@ -8,7 +8,10 @@ MARKUP_FIX = True #Фикс потерянных кавычек и звездо
|
|||
COOKIE_NAME = "cookies.json"
|
||||
USER_MESSAGE_WORKAROUND = True #Отправка в чат сообщения ниже. Код работает по такому принципу: есть контекст (история чата), а есть сообщение юзера. Если True, то сообщением отправляется заглушка ниже, если False, то отправляется последнее сообщение в таверне - джейл/ответ бота/ответ пользователя.
|
||||
USER_MESSAGE = "Respond to the text above." #Отправляемая заглушка
|
||||
REDIRECT_PROXY = "https://api.openai.com/v1/chat/completions"
|
||||
REDIRECT_PROXY = "https://mysteryman63453121-hope.hf.space/proxy/openai"
|
||||
REDIRECT_API_KEY = ""
|
||||
REDIRECT_API_MODEL = "gpt-3.5-turbo" # gpt-3.5-turbo / gpt-3.5-turbo-0301 / gpt-4 / gpt-4-0314 / gpt-4-32k
|
||||
REDIRECT_COMMAND = "Make the text above use less pronouns. Keep asterisks and quotes, it's markup."
|
||||
REDIRECT_COMMAND = "Make the text above use less pronouns. Keep asterisks and quotes, it's markup."
|
||||
REDIRECT_TEMPERATURE = 0.9
|
||||
REDIRECT_USE_CONTEXT = True
|
||||
REDIRECT_CONTEXT_TOKENS = 4095
|
25
main.py
25
main.py
|
@ -31,6 +31,9 @@ REDIRECT_PROXY = config.REDIRECT_PROXY
|
|||
REDIRECT_API_KEY = config.REDIRECT_API_KEY
|
||||
REDIRECT_API_MODEL = config.REDIRECT_API_MODEL
|
||||
REDIRECT_COMMAND = config.REDIRECT_COMMAND
|
||||
REDIRECT_TEMPERATURE = config.REDIRECT_TEMPERATURE
|
||||
REDIRECT_USE_CONTEXT = config.REDIRECT_USE_CONTEXT
|
||||
REDIRECT_CONTEXT_TOKENS = config.REDIRECT_CONTEXT_TOKENS
|
||||
|
||||
try:
|
||||
cookies = json.loads(open(f"./{COOKIE_NAME}", encoding="utf-8").read())
|
||||
|
@ -385,11 +388,18 @@ class SSEHandler(web.View):
|
|||
print(f"Токенов всего: {tokens_total}")
|
||||
if redirect:
|
||||
async with aiohttp.ClientSession() as session:
|
||||
messages_token_count = len(encoding.encode(f"{self.fullResponse}\n\n{REDIRECT_COMMAND}"))
|
||||
redirect_messages = [{"role": "user", "content": f"{self.fullResponse}\n\n{REDIRECT_COMMAND}"}]
|
||||
if REDIRECT_USE_CONTEXT:
|
||||
for message in reversed(messages):
|
||||
if (messages_token_count + len(message["content"])) > REDIRECT_CONTEXT_TOKENS: break
|
||||
messages_token_count += len(message["content"])
|
||||
redirect_messages.insert(0, message)
|
||||
headers = {"Content-Type": "application/json","Authorization": f"Bearer {REDIRECT_API_KEY}"}
|
||||
body = {
|
||||
"model": REDIRECT_API_MODEL,
|
||||
"messages": [{"role": "user", "content": f"{self.fullResponse}\n\n{REDIRECT_COMMAND}"}],
|
||||
"temperature": 0.7,
|
||||
"messages": redirect_messages,
|
||||
"temperature": REDIRECT_TEMPERATURE,
|
||||
"stream": stream
|
||||
}
|
||||
if REDIRECT_PROXY.endswith("v1/chat/completions") or REDIRECT_PROXY.endswith("v1/chat/completions/"):
|
||||
|
@ -400,7 +410,14 @@ class SSEHandler(web.View):
|
|||
url = f"{REDIRECT_PROXY}/v1/chat/completions"
|
||||
async with session.post(url, headers=headers, json=body) as response:
|
||||
async for chunk in response.content.iter_chunked(1024):
|
||||
await self.response.write(chunk)
|
||||
chunk_str = chunk.decode("utf-8")
|
||||
if stream and not chunk_str.startswith("data: ") and chunk_str != "\n: joining queue\n\n":
|
||||
oai_response = prepare_response(self.id, self.created, content="```\n" + chunk_str + "\n```", end=True, done=True, stream=True)
|
||||
await self.response.write(oai_response)
|
||||
elif not stream and not "choices" in json.loads(chunk.decode("utf-8")) and chunk.decode("utf-8") != "\n: joining queue\n\n":
|
||||
oai_response = prepare_response(self.id, self.created, content="```\n" + chunk_str + "\n```", stream=False)
|
||||
await self.response.write(oai_response)
|
||||
else: await self.response.write(chunk)
|
||||
else:
|
||||
if stream:
|
||||
await self.response.write(b"data: " + json.dumps({
|
||||
|
@ -482,4 +499,4 @@ if __name__ == '__main__':
|
|||
f"Режим balanced: http://{HOST}:{PORT}/balanced\n"
|
||||
f"Есть режим подсказок от Бинга. Чтобы его включить, нужно добавить /suggestion после выбранного режима.\n"
|
||||
f"И еще есть режим переброса, нужный для того чтобы победить шиканье креативной Сидни. Включается добавлением /redirect после режима.")
|
||||
web.run_app(app, host=HOST, port=PORT, print=None)
|
||||
web.run_app(app, host=HOST, port=PORT, print=None)
|
Loading…
Reference in New Issue