openai.py 1.2 KB

12345678910111213141516171819202122232425262728293031323334
  1. import os
  2. from typing import Optional
  3. import openai
  4. from openai import OpenAI
  5. from pydantic import BaseModel, Field
  6. from common.log import log
  7. client = OpenAI(api_key=os.getenv("OPENAI_API_KEY"),base_url=os.getenv("OPENAI_BASE_URL"))
  8. class UserIntent(BaseModel):
  9. user_intent: Optional[str] = Field(description="判断的用户意图")
  10. accept:Optional[bool] = Field(description="用户是否接受,是的话为 True,否的话 False")
  11. def openai_check_intent(chat:str):
  12. try:
  13. completion = client.beta.chat.completions.parse(
  14. model="gpt-4o-2024-08-06",
  15. messages=[
  16. {"role": "system", "content": "你是一位经验丰富的电话录音质检员,你非常擅长通过通话记录,判断用户意图"},
  17. {"role": "user", "content": chat},
  18. ],
  19. response_format=UserIntent,
  20. )
  21. math_reasoning = completion.choices[0].message
  22. if math_reasoning.refusal:
  23. return UserIntent(user_intent=math_reasoning.refusal, accept=False)
  24. else:
  25. return math_reasoning.parsed
  26. except Exception as e:
  27. log.error(e)
  28. return UserIntent(user_intent="openai请求失败", accept=False)