openai-kira
Openai GPT3 ChatBot ๆกๆถๅ ๏ผๅจๆชๅ ฌๅผๅๅฟซ้ๅฎ็ฐ็ฑป ChatGPTๆฅๅ ฅ๏ผๅ ฌๅผๅๅฐฑๆฅๅ ฅchatGPT๏ผ๏ผๆๅ ๆไพ่ต็็ฉๅ ทใๆไพ redis ๅ ๆไปถๆฐๆฎๅบ ไธคไธช้ๆฉใ
Use
pip install -U openai-kira
init
import openai_kira
#
openai_kira.setting.redisSetting = openai_kira.setting.RedisConfig()
openai_kira.setting.dbFile = "openai_msg.db"
openai_kira.setting.openaiApiKey = ["key", "key2"]
openai_kira.setting.proxyUrl = None # "127.0.0.1"
# ๆไปถ็่ฎพ็ฝฎ
openai_kira.setting.webServerUrlFilter = False
openai_kira.setting.webServerStopSentence = ["ๅนฟๅ", "่ฅ้ๅท"]
Exp
SEE ./test
for More Exp!
import asyncio
import openai_kira
from openai_kira import Chat
print(openai_kira.RedisConfig())
openai_kira.setting.openaiApiKey = ["key"]
receiver = Chat.Chatbot(
conversation_id=10086,
call_func=None, # Api_keys.pop_api_key,
start_sequ="Ai:",
restart_sequ="Human:",
)
async def main():
response = await receiver.get_chat_response(model="text-davinci-003",
prompt="ไฝ ๅฅฝ",
max_tokens=500,
role="ไฝ ๆฎๆผ...",
web_enhance_server={"time": ""}
)
print(response)
asyncio.run(main())
import asyncio
import openai_kira
print(openai_kira.RedisConfig())
openai_kira.setting.openaiApiKey = ["key"]
print(openai_kira.setting.openaiApiKey)
async def main():
try:
response = await openai_kira.Completion().create(model="text-davinci-003",
prompt="Say this is a test",
temperature=0,
max_tokens=20)
# TEST
print(response)
print(type(response))
except Exception as e:
print(e)
if "Incorrect API key provided" in e:
print("OK")
else:
print("NO")
asyncio.run(main())
Plugin
Table
plugins | desc | value/server | use |
---|---|---|---|
time |
now time |
"" ,no need |
ๆๆจไปๅคฉ .... |
week |
week time |
"" ,no need |
ๅจๅ ..... |
search |
Web Search |
["some.com?searchword={}"] ,must need |
ๆฅ่ฏข ไฝ ็ฅ้ len<80 / end with? len<15 |
duckgo |
Web Search |
"" ,no need,but need pip install duckduckgo_search
|
ๆฅ่ฏข ไฝ ็ฅ้ len<80 / end with? len<15 |
details |
answer with steps |
"" ,no need |
Ask for help how to
|
Plugin dev
There is a middleware between the memory pool and the analytics that provides some networked retrieval support and operational support. It can be spiked with services that interface to other Api's.
Prompt Injection
Use ""
[]
to emphasise content.
Exp
First create a file in openai_kira/Chat/module/plugin
without underscores (_
) in the file name.
Template
from ..platform import ChatPlugin, PluginConfig
from ._plugin_tool import PromptTool
import os
from loguru import logger
modulename = os.path.basename(__file__).strip(".py")
@ChatPlugin.plugin_register(modulename)
class Week(object):
def __init__(self):
self._server = None
self._text = None
self._time = ["time", "ๅคๅฐๅคฉ", "ๅ ๅคฉ", "ๆถ้ด", "ๅ ็น", "ไปๅคฉ", "ๆจๅคฉ", "ๆๅคฉ", "ๅ ๆ", "ๅ ๆ", "ๅ ๅท",
"ๅ ไธชๆ",
"ๅคฉๅ"]
def requirements(self):
return []
async def check(self, params: PluginConfig) -> bool:
if PromptTool.isStrIn(prompt=params.text, keywords=self._time):
return True
return False
async def process(self, params: PluginConfig) -> list:
_return = []
self._text = params.text
# ๆ ก้ช
if not all([self._text]):
return []
# GET
from datetime import datetime, timedelta, timezone
utc_dt = datetime.utcnow().replace(tzinfo=timezone.utc)
bj_dt = utc_dt.astimezone(timezone(timedelta(hours=8)))
now = bj_dt.strftime("%Y-%m-%d %H:%M")
_return.append(f"Current Time UTC8 {now}")
# LOGGER
logger.trace(_return)
return _return
openai_kira/Chat/module/plugin/_plugin_tool.py
provides some tool classes, PR is welcome
Testing
You cannot test directly from within the module package, please run the openai_kira/Chat/test_module.py
file to test
the module, with the prompt matching check.
Alternatively, you can safely use from loguru import logger
+ logger.trace(_return)
in the module to debug the
module variables and the trace level logs will not be output by the production environment.
็ปๆ
.
โโโ openai_kira
โโโ api
โ โโโ api_url.json
โ โโโ api_utils.py
โ โโโ network.py
โโโ Chat
โ โโโ __init__.py
โ โโโ module
โ โโโ Summer.py
โ โโโ test_module.py
โ โโโ text_analysis_tools
โ โโโ vocab.json
โโโ __init__.py
โโโ requirements.txt
โโโ resouce
โ โโโ completion.py
โ โโโ __init__.py
โโโ utils
โโโ data.py
โโโ Network.py
โโโ Talk.py
EULA(end-user-license-agreement)
cn
- ่ช่กๅ ไธบไธๅฝๆไฝๅฏผ่ด็ๆๅคฑใ
- ๆฌ้กน็ฎๅนถ้ๅฎๆน้กน็ฎใ
- ๅ ไธบๅฎๅ จไบๆ ๅฏผ่ด็ๆๅคฑๆไธ่ด่ดฃใ
- ๆ็ปๆช็ปๆๆ็ไธๅฉ/่ฝฏ่็ธๅ ณ็จ้ใ
en
- the damage caused by improper operation on its own.
- This is not an official project.
- I am not responsible for any damage caused by safety incidents.