init
This commit is contained in:
59
backend/ai_service.py
Normal file
59
backend/ai_service.py
Normal file
@@ -0,0 +1,59 @@
|
||||
import openai
|
||||
import os
|
||||
from dotenv import load_dotenv
|
||||
|
||||
load_dotenv()
|
||||
|
||||
class AIService:
|
||||
def __init__(self):
|
||||
# 设置OpenAI API密钥
|
||||
self.api_key = os.getenv('OPENAI_API_KEY')
|
||||
# 延迟初始化客户端,避免在没有API密钥时出错
|
||||
self.client = None
|
||||
|
||||
def polish_description(self, description):
|
||||
"""
|
||||
使用AI润色任务描述
|
||||
"""
|
||||
if not description or not description.strip():
|
||||
return description
|
||||
|
||||
# 检查API密钥
|
||||
if not self.api_key or self.api_key == 'your_openai_api_key_here':
|
||||
print("AI润色功能需要配置OpenAI API密钥")
|
||||
return description
|
||||
|
||||
try:
|
||||
# 使用旧版本OpenAI API
|
||||
openai.api_key = self.api_key
|
||||
|
||||
response = openai.ChatCompletion.create(
|
||||
model="gpt-3.5-turbo",
|
||||
messages=[
|
||||
{
|
||||
"role": "system",
|
||||
"content": "你是一个专业的工作任务描述润色助手。请将用户提供的工作任务描述润色得更加专业、清晰、具体。保持原意不变,但让描述更加规范和易于理解。"
|
||||
},
|
||||
{
|
||||
"role": "user",
|
||||
"content": f"请润色以下工作任务描述:\n\n{description}"
|
||||
}
|
||||
],
|
||||
max_tokens=500,
|
||||
temperature=0.7
|
||||
)
|
||||
|
||||
polished = response.choices[0].message.content.strip()
|
||||
return polished
|
||||
|
||||
except Exception as e:
|
||||
print(f"AI润色失败: {e}")
|
||||
# 如果AI服务失败,返回原始描述
|
||||
return description
|
||||
|
||||
def is_available(self):
|
||||
"""检查AI服务是否可用"""
|
||||
return bool(self.api_key and self.api_key != 'your_openai_api_key_here')
|
||||
|
||||
# 创建全局AI服务实例
|
||||
ai_service = AIService()
|
||||
Reference in New Issue
Block a user