import requests
import json
def callServer(prompt, model="deepseek-ai/DeepSeek-V3.2"):
url = "https://api.siliconflow.cn/v1/chat/completions"
headers = {
"Authorization": f"Bearer sk-envatqyeffxlrtalgexbrueftyzjcezorhhenlexsioqesox",
"Content-Type": "application/json"
}
payload = {
"model": model,
"messages": [{"role": "user", "content": prompt}],
#注意,这里的tempreture要调低,保证结果稳定性
"temperature": 0.1,
"max_tokens": 6000
}
success = True
msg = "OK"
think = ""
result = ""
try:
response = requests.post(url, json=payload, headers=headers)
response.raise_for_status()
result = response.json()['choices'][0]['message']['content']
except Exception as e:
success = False
msg = "API调用异常:" + str(e)
return success, msg, result
def writeData(dataList,fileName):
with open(fileName, 'w', encoding='utf-8') as f:
for data in dataList:
f.write(data + "\n")
def geneData(promptModel,categoryList,countPerCate):
geneDataList = []
for cate in categoryList:
print(cate)
prompt = promptModel.format(countPerCate,cate)
success = False
while not success:
success, msg, result = callServer(prompt)
print(result)
if success :
dataList = json.loads(result)
if len(dataList) > countPerCate-3:
for data in dataList:
geneDataList.append(cate+"\t"+data.strip()+"\t")
else:
success = False
writeData(geneDataList, "geneData.txt")
import random
random.shuffle(geneDataList)
writeData(geneDataList, "geneDataRandom.txt")
if __name__ == "__main__":
categoryList = ["电脑","水果","平板","衣服","酒店","洗浴","书籍","蒙牛","电器","手机"]
promptModel = """你是一位电商评论文本的分类专家,需要生成{}条{}分类的语料,尽可能覆盖该分类的各个方面,每条语料长度不小于30字,不要提及产品的具体名称,开头不要写数字序号,语料不能用于【分类体系】中的其他分类。只允许按照【指定格式】输出,不允许生成任何其他字符。
【分类体系】
["电脑","水果","平板","衣服","酒店","洗浴","书籍","蒙牛","电器","手机"]
【指定格式】
["评论文本1","评论文本2","评论文本3"]"""
geneData(promptModel, categoryList, 40)