openai.py 1.3 KB

1234567891011121314151617181920212223242526272829303132333435
  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. basis: Optional[str] = Field(description="用户意图命中的原始录音文本")
  11. accept:Optional[bool] = Field(description="用户是否接受,是的话为 True,否的话 False")
  12. def openai_check_intent(chat:str):
  13. try:
  14. completion = client.beta.chat.completions.parse(
  15. model="gpt-4o-2024-08-06",
  16. messages=[
  17. {"role": "system", "content": "你是一位经验丰富的电话录音质检员,你非常擅长通过通话记录,判断用户意图"},
  18. {"role": "user", "content": chat},
  19. ],
  20. response_format=UserIntent,
  21. )
  22. math_reasoning = completion.choices[0].message
  23. if math_reasoning.refusal:
  24. return UserIntent(user_intent=math_reasoning.refusal, accept=False)
  25. else:
  26. return math_reasoning.parsed
  27. except Exception as e:
  28. log.error(e)
  29. return UserIntent(user_intent="openai请求失败", accept=False)