Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.

open_ai_bot.py 1.2KB

123456789101112131415161718192021222324252627282930
  1. from bot.bot import Bot
  2. from config import conf
  3. from common.log import logger
  4. import openai
  5. # OpenAI对话模型API (可用)
  6. class OpenAIBot(Bot):
  7. def __init__(self):
  8. openai.api_key = conf().get('open_ai_api_key')
  9. def reply(self, query, context=None):
  10. logger.info("[OPEN_AI] query={}".format(query))
  11. try:
  12. response = openai.Completion.create(
  13. model="text-davinci-003", #对话模型的名称
  14. prompt=query,
  15. temperature=0.9, #值在[0,1]之间,越大表示回复越具有不确定性
  16. max_tokens=1200, #回复最大的字符数
  17. top_p=1,
  18. frequency_penalty=0.0, #[-2,2]之间,该值越大则更倾向于产生不同的内容
  19. presence_penalty=0.2, #[-2,2]之间,该值越大则更倾向于产生不同的内容
  20. stop=["#"]
  21. )
  22. res_content = response.choices[0]["text"].strip()
  23. except Exception as e:
  24. logger.error(e)
  25. return None
  26. logger.info("[OPEN_AI] reply={}".format(res_content))
  27. return res_content