1234567891011121314151617181920212223242526272829303132333435 |
- import os
- from typing import Optional
- import openai
- from openai import OpenAI
- from pydantic import BaseModel, Field
- from common.log import log
- client = OpenAI(api_key=os.getenv("OPENAI_API_KEY"),base_url=os.getenv("OPENAI_BASE_URL"))
- class UserIntent(BaseModel):
- user_intent: Optional[str] = Field(description="判断的用户意图")
- basis: Optional[str] = Field(description="用户意图命中的原始录音文本")
- accept:Optional[bool] = Field(description="用户是否接受,是的话为 True,否的话 False")
- def openai_check_intent(chat:str):
- try:
- completion = client.beta.chat.completions.parse(
- model="gpt-4o-2024-08-06",
- messages=[
- {"role": "system", "content": "你是一位经验丰富的电话录音质检员,你非常擅长通过通话记录,判断用户意图"},
- {"role": "user", "content": chat},
- ],
- response_format=UserIntent,
- )
- math_reasoning = completion.choices[0].message
- if math_reasoning.refusal:
- return UserIntent(user_intent=math_reasoning.refusal, accept=False)
- else:
- return math_reasoning.parsed
- except Exception as e:
- log.error(e)
- return UserIntent(user_intent="openai请求失败", accept=False)
|