【1902】0121-3 process_pdf.py必须修改的部分
本文摘要介绍了使用Python脚本处理PDF课程文件并存入PostgreSQL数据库前的必要配置修改: 数据库连接:需修改main.py中的数据库URL,替换为实际的用户名、密码和数据库名 PDF路径设置:在process_pdf.py中指定实际PDF文件路径和课程名称 LLM API配置(可选):如需生成高质量测试题,需配置Claude API密钥 环境准备:需创建data文件夹存放PDF,并确
必须修改的部分
本文摘要介绍了使用Python脚本处理PDF课程文件并存入PostgreSQL数据库前的必要配置修改:
数据库连接:需修改main.py中的数据库URL,替换为实际的用户名、密码和数据库名
PDF路径设置:在process_pdf.py中指定实际PDF文件路径和课程名称
LLM API配置(可选):如需生成高质量测试题,需配置Claude API密钥
环境准备:需创建data文件夹存放PDF,并确保PostgreSQL中已创建相应数据库
运行步骤:安装依赖后依次执行处理脚本和启动FastAPI服务
只需修改3处配置即可运行,其他代码无需改动。
1. 数据库连接(最重要)
在 process_pdf.py 的开头,需要导入 main.py 的数据库配置:
# process_pdf.py 第4行
from main import SessionLocal, Course, Slide, LearningPath, PathNode
但是 main.py 中的数据库连接字符串需要先修改:
main.py 第15行:
DATABASE_URL = "postgresql://your_user:your_password@localhost/adaptive_learning"
改为你的实际数据库用户名和密码,例如:
DATABASE_URL = "postgresql://postgres:123456@localhost/adaptive_learning"
2. PDF文件路径(必须改)
process_pdf.py 最后几行:
if __name__ == "__main__":
# 处理PDF
course_id = process_course(
pdf_path="path/to/your/course.pdf", # 改这里
course_name="Python函数式编程" # 改这里
)
改为你的实际PDF路径:
if __name__ == "__main__":
course_id = process_course(
pdf_path="data/course.pdf", # 你的PDF位置
course_name="元宇宙课程" # 你的课程名
)
3. LLM API配置(可选但推荐)
如果你想生成高质量的测试题和Y/Z slides,需要配置LLM API。
在 process_pdf.py 的开头添加:
import anthropic
# 配置API key
ANTHROPIC_API_KEY = "your-api-key-here"
修改 generate_quiz_for_slide() 函数:
def generate_quiz_for_slide(slide_content, slide_id):
"""
使用Claude生成测试题
"""
client = anthropic.Anthropic(api_key=ANTHROPIC_API_KEY)
prompt = f"""
基于以下内容生成3道单选题:
{json.dumps(slide_content, ensure_ascii=False)}
要求:
1. 恰好3道题
2. 每题4个选项(A、B、C、D)
3. 难度递进
严格按照以下JSON格式输出,不要有任何markdown标记:
{{
"questions": [
{{
"id": 1,
"question": "题目内容",
"options": {{"A": "选项A", "B": "选项B", "C": "选项C", "D": "选项D"}},
"correct": "B"
}}
]
}}
"""
try:
message = client.messages.create(
model="claude-sonnet-4-20250514",
max_tokens=2000,
messages=[{"role": "user", "content": prompt}]
)
response_text = message.content[0].text
return json.loads(response_text)
except Exception as e:
print(f"LLM生成失败,使用默认题目: {e}")
# 返回默认题目(保持原来的模拟数据)
return {
"questions": [...] # 保持原来的默认实现
}
如果不配置LLM,脚本会使用默认的模拟数据(可以运行,但题目质量不高)。
完整的修改清单
创建一个新文件 process_pdf.py,包含以下修改:现在给你一个检查清单:
使用脚本前的检查清单
1. 修改 main.py
# 第15行,修改数据库连接
DATABASE_URL = "postgresql://你的用户名:你的密码@localhost/adaptive_learning"
2. 修改 process_pdf.py
# 文件开头(已更新)
USE_LLM = False # 如果有Claude API key,改为True
ANTHROPIC_API_KEY = "your-key" # 如果USE_LLM=True,填入key
# 文件末尾(已更新)
pdf_path="data/course.pdf" # 改为你的PDF路径
course_name="元宇宙课程讲义" # 改为你的课程名
3. 创建data文件夹
mkdir data
# 把你的PDF放到data/course.pdf
4. 确保PostgreSQL已创建数据库
psql -U postgres
CREATE DATABASE adaptive_learning;
运行步骤
# 1. 安装依赖
pip install fastapi uvicorn sqlalchemy psycopg2-binary pymupdf pydantic anthropic
# 2. 运行处理脚本
python process_pdf.py
# 3. 启动FastAPI服务
uvicorn main:app --reload
总结:需要修改3个地方,其他代码不用改!我已经更新了artifact中的代码,标注了需要修改的配置区域。
更多推荐
所有评论(0)