首页 > 其他分享 >GPT存档

GPT存档

时间:2024-02-12 23:25:14浏览次数:29  
标签:提示 index df 存档 print GPT input col

import pandas as pd
from openai import OpenAI
import os
from tqdm import tqdm

# 请求用户选择操作模式
print("请选择操作模式:\n1. 翻译功能\n2. 室内提示词\n3. 室内提示词16:9\n4. 用户自定义输入")
mode = int(input("请输入操作模式的数字(1-4): "))

# 不同模式对应的指令
instructions = {
    1: "请根据输入数据的语言执行相反的翻译(如果输入是英语,则翻译成中文;如果输入是中文,则翻译成英语),只返回翻译后的结果,不要包含原文。",
    2: "你是stable diffusion的提示词生成器,专注于室内设计领域(家庭装修)(如客厅,卧室等)。我会给你一个引导词,如'{0}',请根据这个引导词创造1条英文的stable diffusion提示语,用于创造惊艳的stable diffusion图像,提示语尽量长30英文词左右,提示语前不要有数字,每条提示语用换行符隔开,提示语尽量用完整的自然语言句子。请只要返还1条提示语,不要有其他的回答,除逗号句号外不要有特殊符号。一行一句,行与行之间不要有空行。提示语前面都加上'Interior design,'",
    3: "你是stable diffusion的提示词生成器,专注于室内设计领域(家庭装修)(如客厅,卧室等)。我会给你一个引导词,如'{0}',请根据这个引导词创造1条英文的stable diffusion提示语,用于创造惊艳的stable diffusion图像,提示语尽量长30英文词左右,提示语前不要有数字,每条提示语用换行符隔开,提示语尽量用完整的自然语言句子。请只要返还1条提示语,不要有其他的回答,除逗号句号外不要有特殊符号。一行一句,行与行之间不要有空行。提示语前面都加上'Interior design,'提示语后面都加上' --ar 16:9'"
}

# 用户自定义输入
if mode == 4:
    custom_instruction = input("请输入您的自定义指令: ")
    instructions[4] = custom_instruction

# 请求用户输入 Excel 文件的路径
excel_file = input("请输入Excel文件的完整路径: ")

# 检查文件路径是否有效
if not os.path.isfile(excel_file):
    print("指定的文件不存在,请检查文件路径。")
    exit()

# 请求用户输入读取列和输出列
input_col = int(input("请输入读取数据的列号(从1开始计数): "))
output_col = int(input("请输入输出数据的列号(从1开始计数): "))

# 设置 OpenAI 客户端
client = OpenAI(
    base_url="https://oneapi.xty.app/v1",
    api_key="sk-q4zbysbGwSqCL3tJD15f7f296a464e2f9126149cB960763c"  # 使用指定的 API 密钥
)

# 尝试读取 Excel 文件
try:
    df = pd.read_excel(excel_file)

    # 确保DataFrame有足够的列
    while len(df.columns) < max(input_col, output_col):
        df[f'Column {len(df.columns) + 1}'] = None

except Exception as e:
    print("无法读取文件: ", e)
    exit()

# 检查 DataFrame 是否为空
if df.empty:
    print("Excel 文件是空的。")
    exit()

# 使用 tqdm 创建进度条并处理数据
print_count = 0  # 设置打印计数器
for index, row in tqdm(df.iterrows(), total=df.shape[0], desc="处理进度"):
    # 验证数据格式和完整性
    if pd.isna(row.iloc[input_col - 1]):
        print(f"跳过空行: {index}")
        continue

    user_input = row.iloc[input_col - 1]
    instruction = instructions[mode].format(user_input)

    # 获取模型的回答
    try:
        completion = client.chat.completions.create(
            model="gpt-4-1106-preview",
            messages=[{"role": "system", "content": instruction}]
        )
        gpt_response = completion.choices[0].message.content
        df.at[index, df.columns[output_col - 1]] = gpt_response
    except Exception as e:
        print(f"处理第 {index} 行时出错: {e}")

    # 打印前5条读取结果与返还结果
    if print_count < 5:
        print(f"第 {index + 1} 行读取结果: {user_input}")
        print(f"第 {index + 1} 行返还结果: {gpt_response}\n")
        print_count += 1

# 将更新后的 DataFrame 保存回 Excel 文件
try:
    with pd.ExcelWriter(excel_file, engine='openpyxl', mode='a', if_sheet_exists='replace') as writer:
        df.to_excel(writer, index=False)
    print("Excel文件已成功更新!")
except Exception as e:
    print("无法保存文件: ", e)

 

标签:提示,index,df,存档,print,GPT,input,col
From: https://www.cnblogs.com/zly324/p/18014236

相关文章

  • GPT室内提示词生成
    fromopenaiimportOpenAIclient=OpenAI(base_url="https://oneapi.xty.app/v1",api_key="sk-gfJsNLc7n7AWUmJG4c2030D10d1d479197400c6c53D58d79")#定义系统指令(instruction)instruction=("你是stablediffusion的提示词生成器,专注于室内设......
  • 文心一言 VS 讯飞星火 VS chatgpt (198)-- 算法导论14.3 6题
    六、用go语言,说明如何来维护一个支持操作MIN-GAP的一些数的动态集Q,使得该操作能给出Q中两个最接近的数之间的差值。例如,Q=(1,5,9,15,18,22),则MIN-GAP返回18-15=3,因为15和18是Q中两个最接近的数。要使得操作INSERT、DELETE、SEARCH和MIN-GAP尽可能高效,并分析它们的运行时间。文心一言,代......
  • 文心一言 VS 讯飞星火 VS chatgpt (197)-- 算法导论14.3 5题
    五、用go语言,对区间树T和一个区间i,请修改有关区间树的过程来支持新的操作INTERVALSEARCH-EXACTLY(T,i),它返回一个指向T中结点x的指针,使得x.int.low==i.low且x.int.high==i.high;或者,如果不包含这样的区间时返回T.nil。所有的操作(包括INTERVAL-SEARCH-EXACTLY)......
  • ChatGPT开启“阿拉丁时代”
    ChatGPT被认为有可能引发下一次生产力的解放。这个AI与其他人工智能模型相比有什么不同?它将带来怎样的新一波产业革命浪潮?本文通过对ChatGPT的原理和应用分析,对ChatGPT未来可能带来的应用与创业机会提出了前瞻性的预测,对AI在未来人类社会中的发展提出了新的思考。适合关注人工智......
  • 开源!免费!Hugging Face推出GPT商城
    HuggingFace发布开源AI助手制造工具,与OpenAI的定制GPT形成竞争 HuggingFace今年1月31日推出一款开源AI代码库——HuggingChatAssistants,允许用户轻松创建特定功能的定制AI聊天机器人。 不同于OpenAI的ChatGPT商城需要每月20美金成为会员才能使用(团队用户每人每年30......
  • 性能最接近 GPT4,开源AI模型 “泄露”
    近期开源AI社区发生了一场大事件,一位用户在HuggingFace平台上传了一系列文件,包含一个看似新的开源大型语言模型“miqu-1-70b”。这一模型被认为是最接近OpenAI的GPT-4,引发了广泛关注和猜测。不少用户则在社交平台X(原名Twitter)上分享了测试比较,miqu和Mixtral模型的能力......
  • 凸优化 | 期末复习笔记存档
    这是自动化系的凸优化期末复习笔记,应该覆盖所有考点了。据可靠情报,至少2023秋季学期,两位老师的考题是一样的。想起来,考试时考察凸集,有问到一个腐蚀球的问题;大概先定义了腐蚀(若r=1的球被凸集包含,则球心在腐蚀后的凸集里)。去证明凸集腐蚀后还是凸的(或者类似的证明)。证明思路:......
  • 超越GPT-4V: 浦语·灵笔2在13项多模态评测的领先之旅
    前言在人工智能的不断发展中,多模态大模型成为了研究和应用的前沿。浦语·灵笔2作为一款基于书生·浦语2-7B模型研发的图文多模态大模型,不仅在技术上实现了重要突破,更在多项国际评测中展现出了卓越的性能。浦语·灵笔2是基于书生·浦语2大语言模型研发的突破性的图文多模态大模型,具......
  • 概率图模型 | 两次小测的笔记存档
    这是两次习题课的笔记存档,分别对应两次小测题目;覆盖了所有考点……这些笔记是答题pipeline的总结,并不是知识点教学;需要稍微懂一些知识点,感觉才能看懂()(反正我现在已经看不懂了……(想哭又想笑.jpg)目录20231027-第七周小测复习1bayes公式2基本PGM表示3BayesianNetwork......
  • 文心一言 VS 讯飞星火 VS chatgpt (195)-- 算法导论14.3 3题
    三、用go语言,请给出一个有效的算法,对一个给定的区间i,返回一个与i重叠且具有最小低端点的区间;或者当这样的区间不存在时返回T.nil。文心一言,去掉math,代码正常运行:在Go语言中,你可以使用结构体来表示区间,并使用切片来存储区间集合。然后,你可以遍历区间集合,找到与给定区间重叠且具......