63 lines
1.5 KiB
Python
63 lines
1.5 KiB
Python
from openai import OpenAI
|
|
from pathlib import Path
|
|
from models.class_model import Classes
|
|
from models.employment import Employment
|
|
from models.student import Student
|
|
from models.class_teacher import ClassTeachers
|
|
from models.consultant import Consultant
|
|
from models.score import Score
|
|
from models.teacher import Teacher
|
|
from sqlalchemy import func
|
|
|
|
def llm_func(input_user):
|
|
|
|
client = OpenAI(
|
|
api_key="sk-2e7da09d2ef1432f96af95114824e6b5",
|
|
base_url="https://api.deepseek.com"
|
|
)
|
|
|
|
prom_path = Path(__file__).parent / "prom.txt" #拼接路径
|
|
context = prom_path.read_text(encoding="utf-8")
|
|
|
|
|
|
|
|
# 2. 调用大模型
|
|
|
|
response = client.chat.completions.create(
|
|
model="deepseek-flash",
|
|
messages=[
|
|
{
|
|
"role": "system",
|
|
"content": context
|
|
},
|
|
{
|
|
"role": "user",
|
|
"content": input_user
|
|
}
|
|
]
|
|
)
|
|
|
|
# 3. 获取AI回复
|
|
code = response.choices[0].message.content
|
|
print("====== LLM生成代码 ======")
|
|
print(code)
|
|
print("========================")
|
|
|
|
env = {
|
|
"Student": Student,
|
|
"Classes": Classes,
|
|
"Employment": Employment,
|
|
"ClassTeachers": ClassTeachers,
|
|
"Consultant": Consultant,
|
|
"Score": Score,
|
|
"Teacher": Teacher,
|
|
"func": func
|
|
}
|
|
|
|
namespace={}
|
|
exec(code, env,namespace)
|
|
|
|
execute_func = namespace["execute"]
|
|
return execute_func,code
|
|
|