txt生成大模型一问一答标签

首先先看标签的形式,一问一答。user是用户的输入,assistant是大模型的输出。

[
  {
    "id": "identity_0",
    "conversations": [
      {
        "from": "user",
        "value": "你好"
      },
      {
        "from": "assistant",
        "value": "我是一个语言模型,我叫通义千问。"
      }
    ]
  }

  {
    "id": "identity_1",
    "conversations": [
      {
        "from": "user",
        "value": "你好"
      },
      {
        "from": "assistant",
        "value": "我是一个语言模型,我叫通义千问。"
      }
    ]
  }

]

首先,我们以租房合同为例子。user的值是输入租房合同的内容,然后assistant输出合同中的关键信息。

我们讲租房合同的内容以txt的形式保存。txt的名字就是合同的编号。一个合同一个txt文件。

一个合同一个txt文件。

回答的内容用一个excel保存。

这个代码的功能就是,将txt中的内容作为user的值,通过合同编号去excel中检索关键内容最为assistant的值。

import os
from xToolkit import  xfile
import json
#使用绝对路径
txt_path = 'D:\\Document_Exercitation\\大模型文本\\txt\\'  # txt文件存放路径
excel_path = 'D:\\Document_Exercitation\\大模型文本\\excel\\excel.xls' #excel文件
output_path = "D:\\Document_Exercitation\\大模型文本\\output\\empty_file.txt"  # 生成的大模型标签

dictionary_excel=xfile.read(excel_path).excel_to_dict() #将excel_path 转为字典的形式
#print(dictionary_excel)

# 使用 'w' 模式打开文件,如果文件不存在则创建
with open(output_path, "w", encoding='utf-8') as file:
    file.write("[\n")

files = []
txt_dataset = {"id": None,
               "conversations": None
               }

for root, dirs, files in os.walk(txt_path):
    None

number = len(files)#文件数量
i=0
while i < number:
    txt_name = files[i][0:-4] #提取txt名字
    txt_files = txt_path + files[i] #txt文件

    with open(txt_files, "r", encoding='utf-8') as f:  # 打开文件
        data = f.read()  # 读取文件
        conversations = data #存储值
        #print(data)
    for contract in dictionary_excel:
        if contract["合同号"] == txt_name:
            contract = ', '.join([f"{k}:{v}" for k, v in contract.items()])
            print(contract)
            break
    else:
        print(f"找不到合同号为 '{txt_name}' 的合同信息")
    conversations_str = [{"from": "user", "value": conversations},{"from": "assistant", "value": contract}]
    id = f"identity_{i}"
    txt_dataset['id'] = id
    txt_dataset['conversations'] = conversations_str

    # 使用 'w' 模式打开文件,如果文件不存在则创建
    with open(output_path, "a+", encoding='utf-8') as f:
            f.write(json.dumps(txt_dataset, ensure_ascii=False)+"\n")
    print(txt_dataset)
    i += 1
with open(output_path, "a+", encoding='utf-8') as f:
        f.write("]")

最后得到一个全部标签的txt文件。内容如下

[
{"id": "identity_0", "conversations": [{"from": "user", "value": "房屋租聘合同\n\n转租人(以下简称甲方),承租人(以下简称乙方),经甲乙双方协商同意将华夏小区一单元302室租给乙方使用。就房屋租凭事宜订立合同,共同遵守。\n\n一、租用期限:2022.4.7\n\n二、租金共为12222元整。\n\n三、除租金外,没有任何额外费用(包括水费、服务费等,除电费外)。\n\n四、本合同一式两份,双方各执一份。发生分歧时,双方协商解决,协商不可时向法院提起诉讼。\n\n\n合同编号123JHAt"}, {"from": "assistant", "value": "合同号:123JHAt, 时间:2022.4.7, 金额:12222"}]}
{"id": "identity_1", "conversations": [{"from": "user", "value": "1. 前言\n在进行文本处理和 数据分析等任务时,经常需要将结果追加写入到已有的txt文件中。 Python提供了简单而有效的方法来实现这个功能。本文将详细介绍如何使用 Python在txt文件的末尾追加写入数据。\n\n2. 打开文件\n在进行追加写入操作之前,首先需要打开目标txt文件。Python提供了内置的open()函数来打开文件,可以指定文件名和打开模式。下面是一个简单的示例代码:"}, {"from": "assistant", "value": "合同号:ATBD789, 时间:2024.7.9, 金额:3333"}]}
{"id": "identity_2", "conversations": [{"from": "user", "value": "Python 函数形参\n在定义函数时,括号中声明的变量列表是形参 。一个函数可以定义任意数量的形参。\n\n在调用函数时:\n\n所有的参数都是必需的。\n实际参数的数量必须等于形参的数量。\n形参是按位置来赋值的,按照定义的顺序依次接收值。\n参数的类型必须匹配。\n形参和实参的名称不必相同。"}, {"from": "assistant", "value": "合同号:HAU23, 时间:2022.3.7, 金额:4444"}]}
{"id": "identity_3", "conversations": [{"from": "user", "value": "1.Python Match Case语句\n在Python 3.10版本之前,Python缺乏类似于C或C++的switch-case功能。在Python 3.10中引入了一种称为match-case的模式匹配技术,它类似于”switch case”结构。\n\n一个 match 语句接受一个表达式,并将其值与连续的模式(作为一个或多个case块给出)进行比较。使用方法更类似于Rust或Haskell等语言的模式匹配,而不是C或C++中的switch语句。只有第一个匹配的模式将被执行。还可以从该值中提取组件(序列元素或对象属性)到变量中。\n\n语法\nmatch-case的基本用法是将变量与一个或多个值进行比较。\n\nmatch variable_name:"}, {"from": "assistant", "value": "合同号:hsy875, 时间:2021.1.4, 金额:56"}]}
]

  • 21
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值