关于 AI 生成英语例句的问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
jsjcjsjc
V2EX    问与答

关于 AI 生成英语例句的问题

  •  
  •   jsjcjsjc 310 天前 1298 次点击
    这是一个创建于 310 天前的主题,其中的信息可能已经有所发展或是发生改变。

    背单词啊背单词,还是例句靠谱些,准备自己用 AI 生成考虑单词例句,有两个问题

    1. 我的 prompt 似乎没办法让 AI 生成完整的清单,不确定是不是 AI 模型不支持这么大的,丢 4000 单词进去似乎不行,200 个似乎也不行.
    2. 有没有推荐的模型干这个活? 感谢

    我的 prompt

    # 角色 你是一名中英文双语教育专家,具备深厚的语言学知识和教学经验。具有 4 万多的词汇量,并有惊人的阅读量,可以轻松根据英文单词创建合适的例句,拥有帮助将中文视为母语的用户理解和记忆英语单词的专长,请根据用户提供的英语单词完成下列任务。 # 任务 ## 例句生成: - 根据用户提供英语单词生成英文例句。 - 有能力生成上百句英文例句,将用户提供的单词全部包含在这些例句中。 - 例句包含的单词不要超过 39 个。 - 每个例句中至少包含 5 个用户提供的单词,可以是单词的其他形态。 - 每个例句中尽量多的使用用户提供的单词,以减少例句的数量。 - 确保例句的语法正确,自然流畅,尽可能使用简单语法。 - 如果用户提供的英文单词中有多个常用释义,可以将此单词用于多个例句中以表达其不同的含义。 - 使用 markdown 语法将需要学习的英文单词高亮。 - 请检查例句 3 次,确认没有语法错误。 - 生成的例句中必须包含用户提供的所有单词,如果没有全部包含,请继续按照要求生成例句。 ## 例句翻译: - 对于每个例句,提供对应的中文释义。 ## 单词解释: - 提供单词在例句中的简明释义。 - 提供单词的音标,音标需要使用 DJ 音标,以下是所有音标:i e u r r e a o a p b t d k t d f v θ s z h m n l r j w ,如果你返回的音标不在其中,那一定是版本没用对,请检查是否符合版本要求。 ## 输出格式如下: **例句:**She **lacked** the **necessary** resources to **complete** the project, leading to a **failure** **despite** her **efforts**. **翻译:**她缺乏完成项目所需的资源,尽管努力仍导致失败。 **单词:** **lack**/lk/ - v. 缺乏,缺少 **necessary**/nessr/ - adj. 必要的,必需的 **complete**/kmplit/ - v. 完成 **failure**/feljr/ - n.失败 **despite**/dspat/ - prep. 尽管 **effort**/efrt/ - n. 努力 
    13 条回复    2025-01-25 11:33:52 +08:00
    InkStone
        1
    InkStone  
       310 天前
    这不是模型的问题,而是这种长上下文的任务就不适合放在一个 prompt 中完成,最好拆分成多次交互。

    反正你的例句之间也没有相互依赖,完全可以并行完成。
    jsjcjsjc
        2
    jsjcjsjc  
    OP
       310 天前
    @InkStone 并行完成时啥意思? 所以就是每次丢个 50 个例句进去?
    感谢
    InkStone
        3
    InkStone  
       310 天前   1
    @jsjcjsjc 对呀,每个请求把你的 prompt 发一遍,丢前置 prompt+需要生成例句的单词让它生成例句,然后把所有生成结果汇总一下就好了。
    jsjcjsjc
        4
    jsjcjsjc  
    OP
       310 天前
    @InkStone 感谢,我还是 5000 单词全部丢进去,一路"请继续",似乎也一样
    JLVe
        5
    JLVe  
       310 天前
    做个 agent 吧,单词作为知识库
    Liftman     6
    Liftman  
       310 天前   1
    楼上+1 。你这个数量不可能的。走 agent 或者你让 gpt 写一个脚本多线程的从你的词库里面同时并发请求汇总到一个文本里面去(我之前有一大堆文本,需要设计针对这个文本每句话的问题,就反向让 gpt 提问)

    而且我设计题库的时候,试过像这种大数量的一致性输出,早期 gpt 那会的时候 50 题就不稳了。后来好一点了。我也只敢 100 题一次。
    mumbler
        7
    mumbler  
       310 天前
    每次只生成 30 个句子,句子生成后放 prompt 里继续生成

    模型用 gemini-exp-1206
    Vegetable
        8
    Vegetable  
       310 天前
    你完全可以把你的帖子内容拿出来给 AI ,让他帮你生成一个调用 API 生成例句的脚本。你运行脚本就行了。
    Donaldo
        9
    Donaldo  
       310 天前
    歪个楼,例句的话没必要生成吧,随便一个词典里不就有不少么?
    musi
        10
    musi  
       310 天前
    我也在思考这个问题,我想的是能不能从影剧台词中提取出相关的台词桥段
    jsjcjsjc
        11
    jsjcjsjc  
    OP
       308 天前
    @Donaldo 关键是这个"每个例句中至少包含 5 个用户提供的单词,可以是单词的其他形态。" 希望尽可能少的例句包含所有的单词
    jsjcjsjc
        12
    jsjcjsjc  
    OP
       308 天前
    @JLVe 有相关的教程吗? 我刚查看了一下 agent 的介绍,再这个案例上没明白应该如何进行逻辑.

    生成例句,是否包含所有单词,继续生成?
    jsjcjsjc
        13
    jsjcjsjc  
    OP
       306 天前
    @Liftman Agent 没明白,不过代码是可以的可以的,AI 写的代码,可以使用
    ```
    import os
    import requests
    import time
    import warnings
    from requests.packages.urllib3.exceptions import InsecureRequestWarning

    # 禁用不安全请求的警告
    warnings.simplefilter('ignore', InsecureRequestWarning)

    # API 配置
    API_URL = "https://api.oaibest.com/v1/chat/completions"
    API_KEY = "key"

    def main():
    # 读取 prompt
    try:
    with open("prompt.txt", "r", encoding="utf-8") as f:
    prompt = f.read().strip()
    except FileNotFoundError:
    print("Error: prompt.txt not found!")
    return

    # 获取所有 input 文件并按名称排序
    input_files = sorted([f for f in os.listdir()
    if f.startswith("input") and f.endswith(".txt")])

    if not input_files:
    print("No input files found!")
    return

    # 处理每个 input 文件
    for input_file in input_files:
    print(f"Processing {input_file}...")

    # 读取 input 文件内容
    try:
    with open(input_file, "r", encoding="utf-8") as f:
    input_text = f.read().strip()
    except Exception as e:
    print(f"Error reading {input_file}: {e}")
    continue

    # 将 prompt 和 input_text 合并到一个消息中
    combined_message = f"{prompt}\n\n{input_text}"

    # 准备请求数据
    data = {
    "model": "o1-mini",
    "messages": [
    {"role": "user", "content": combined_message}
    ]
    }

    headers = {
    "Authorization": f"Bearer {API_KEY}",
    "Content-Type": "application/json"
    }

    try:
    # 发送请求,禁用 SSL 验证
    respOnse= requests.post(API_URL, json=data, headers=headers, verify=False)

    if response.status_code == 200:
    # 解析响应
    result = response.json()["choices"][0]["message"]["content"]

    # 将结果追加到 output.txt
    with open("output.txt", "a", encoding="utf-8") as f:
    f.write(f"\n=== Response for {input_file} ===\n")
    f.write(result)
    f.write("\n")

    print(f"Successfully processed {input_file}")
    else:
    print(f"Error processing {input_file}: {response.status_code} - {response.text}")

    except requests.exceptions.RequestException as e:
    print(f"Request error for {input_file}: {e}")
    except Exception as e:
    print(f"Unexpected error processing {input_file}: {e}")

    # 在处理下一个文件前等待 1 秒
    time.sleep(1)

    print("\nAll files processed. Results saved in output.txt")

    if __name__ == "__main__":
    main()

    ```
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     936 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 21:58 PVG 05:58 LAX 13:58 JFK 16:58
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86