智能体baseline分析

数据读取

首先请到https://platform.deepseek.com/api_keys生成key 填入环境变量

# 请到 https://platform.deepseek.com/api_keys 申请api填入下方,新用户赠送10元额度的token完全支持本次baseline速通~
DEEPSEEK_API_KEY = 'sk-'
# 读取参考数据集
import json,time
from functools import reduce
novel_data = []
with open('./参考数据集.json', 'r',encoding='utf-8') as file:
    for line in file:
        novel_data.append(json.loads(line))
# 查看数据集中第 1 本小说的名字
novel_data[0]['name']

'三国演义'

# 查看数据集中所有小说的名字和字数
for i in novel_data:
    print(f"《{i['name']}》的字数为: {len(i['text'])} 字")

《三国演义》的字数为: 593514 字

《水浒传》的字数为: 838774 字

《儒林外史》的字数为: 327064 字

《呼啸山庄》的字数为: 215931 字

《百年孤独》的字数为: 246912 字

《西游记》的字数为: 714847 字

《红与黑》的字数为: 361019 字

《战争与和平》的字数为: 1056718 字

《聊斋志异》的字数为: 384606 字

《醒世恒言》的字数为: 328581 字

《傲慢与偏见》的字数为: 218614 字

《红楼梦》的字数为: 789372 字

《隋唐演义》的字数为: 636063 字

《封神演义》的字数为: 588226 字

《拍案惊奇》的字数为: 238248 字

《尤利西斯》的字数为: 363155 字

《福尔摩斯探案集》的字数为: 363914 字

# 读取数据集中第 4 本小说《呼啸山庄》的文本作为训练集数据来源
data = novel_data[3]["text"]
story_name = novel_data[3]["name"]
# 查看《呼啸山庄》全文
data

'一年。我刚刚拜访过我的房东回来——就是那个将要给我惹麻烦的孤独的邻居。这儿可真是一个美丽的乡间!……

数据分块

# 更新pip
!python -m pip install --upgrade pip
# 更换 pypi 源加速库的安装
!pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
# 安装必要的库
!pip install jieba loguru openai 

按照800字以内的句子段落划分数据。

# 拆分《呼啸山庄》的文本为 800 字一段的段落
import jieba

# 利用jieba进行句子切分
sentences = []

for sentence in data.split('。'):  # 使用句号作为切分符
    sentences.append(sentence)

# 将句子合并成800字一段的段落
paragraphs = []
current_paragraph = ''
for sentence in sentences:
    if len(current_paragraph) + len(sentence) <= 800:
        current_paragraph += sentence+'。'
    else:
        paragraphs.append(current_paragraph.strip())
        current_paragraph = sentence

# 将最后一段加入到段落列表中
if current_paragraph:
    paragraphs.append(current_paragraph.strip())

# 打印切分后的段落
for idx, paragraph in enumerate(paragraphs):
    print(f'段落 {idx + 1}: {paragraph}')

大模型构建数据集

库导入

# 引入库与日志
from loguru import logger
import json
from tqdm import tqdm
from concurrent.futures import ThreadPoolExecutor, as_completed
import time
import os
from openai import OpenAI
# 配置loguru输出到文件
logger.remove()  # 移除默认的控制台输出
logger.add("logs/app_{time:YYYY-MM-DD}.log", level="INFO", rotation="00:00", retention="10 days", compression="zip")

大模型函数

# 使用deepseek-chat api给段落打标签的接口
def get_response(text):
    client = OpenAI(
        api_key=DEEPSEEK_API_KEY,  # 如果您没有配置环境变量,请在此处用您的API Key进行替换
        base_url="https://api.deepseek.com",  # 填写DashScope SDK的base_url
    )
    completion = client.chat.completions.create(
        model="deepseek-chat",
        messages=[
            {
                'role': 'system', 
                'content': '总结user提交的内容。用一句不超过50字的话总结这段小说的情节。仅回答总结,不需要添加其他内容。'
            },
            {
                'role': 'user', 
                'content': text
            }
        ])
    
    return completion.choices[0].message.content

调用日志打印

# 设置容错机制,可最多重试 5 次,如果失败记录错误日志
def get_summary_with_retry(text):
    max_retries = 5
    retry_delay = 15  # in seconds
    attempts = 0
    while attempts < max_retries:
        try:
            return get_response(text)
        except Exception as e:
            attempts += 1
            if attempts < max_retries:
                logger.warning(f"Attempt {attempts} failed for te
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值