实验要求 4
实验指导文档:利用Python和LLM解决实际问题
一、实验目的
理解大语言模型(LLM)的基本原理与API调用方式。掌握使用Python通过HTTP请求与开源LLM接口交互的技能。学会利用LLM完成信息抽取、摘要生成、情感分析等典型任务。能够将AI能力嵌入现实应用场景的能力。
二、实验环境
- Python 3.8+
- requests库
- pandas、json 等基础库
- Jupyter Notebook 或 PyCharm/VS Code
三、数据资源
- news_data.json: 包含若干条新闻,用于利用LLM生成新闻摘要
- reviews.txt: 包含若干条产品评论文本,用于利用LLM进行产品评论的情感分析
- context.txt:包含一段产品介绍背景文字,用于基于这段文字利用LLM进行问答
四、LLM API资源
- OpenRouter(多种大模型免费调用接口):
- 网站:https://openrouter.ai/
- 先进行注册(Sign Up),使用邮箱注册,进入邮箱激活账号
- 进入网站获取API Keys,Keys -> Create API Keys -> 复制key到自己代码中
- key示例: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
- 在Python代码中调用API获得LLM能力(可参考说明文档:https://openrouter.ai/docs/quickstart)
- 请自己选择一个免费的支持中文的模型进行实验(如:qwen/qwen3-8b:free)
五、实验场景描述
假设你正在开发一个“智能内容理解系统”,它可以: - 对新闻内容进行摘要提取 - 对产品评论进行情感分析 - 智能回答用户基于产品文档的提问
六、实验步骤
实验一:使用Python调用LLM进行对话(基础接口测试)
任务要求:
- 注册并获取OpenRouter的API Key
- 编写Python脚本调用API,向模型发送简单提问,如“今天天气如何?”
- 输出模型返回结果,并格式化显示
输出内容:
- 展示出你对LLM输入的问题和LLM给你的输出文本
实验二:新闻摘要生成任务(文本摘要)
任务要求:
- 加载本地文件 news_data.json,其中包含若干篇新闻的标题与正文
- 编写程序,使用LLM对每篇新闻生成一句话摘要(要求长度控制在30个字以内)
- 将结果输出为 summary_results.json 文件,结构如:
[
{
"title": "xxx",
"summary": "这是一条自动生成的摘要"
},
...
]
输出内容:
- 存储为结构化JSON文件中的每一条新闻的摘要内容
实验三:评论情感分析(情感分类)
任务要求:
- 加载 reviews.txt,每行为一条用户评论
- 使用LLM判断每条评论是“积极”还是“消极”(注意对于LLM生成额外信息的处理)
- 将结果输出为 review_sentiment.csv,包含原始文本和情感标签
输出内容:
- 输出每条评论及其对应的分类标签(积极 / 消极)CSV文件,格式如下:
text,sentiment
"这个产品太棒了!",积极
"差评,完全没用",消极
...
实验四:基于文档问答(开放问答)
任务要求:
- 模拟用户上传一段背景材料(如新闻或产品说明 context.txt)
- 用户输入一个问题,系统利用大语言模型回答
- 举例问题如:“该产品最吸引用户的特点是什么?”
- 能够支持用户上传不同的文档(设置文档文件为参数,灵活输入给LLM)
- 能够支持用户同时输入多个问题,一次性给出多个答案
输出内容:
- 输入问题+输出答案的成对的列表(列表字典)
[
{"question": "问题1", "answer": "LLM生成的回答1"},
{"question": "问题2", "answer": "LLM生成的回答2"},
...
]
五、实验提交内容
请将以下文件打包提交:
- 所有
.py实验代码文件(可附在报告后面) - 所有实验步骤中要求输出的内容(可附在报告对应位置中)
- 实验报告(使用模板填写)
六、注意事项
- 实验报告参考报告模板撰写,并将word格式的报告发到老师邮箱:zongchang@zust.edu.cn(报告文件名格式:姓名_学号_报告3)