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

30 天前
jsjcjsjc  jsjcjsjc

背单词啊背单词,还是例句靠谱些,准备自己用 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**/læk/ - v. 缺乏,缺少
**necessary**/ˈnesəsərɪ/ - adj. 必要的,必需的
**complete**/kəmˈpliːt/ - v. 完成
**failure**/ˈfeɪljər/ - n.失败
**despite**/dɪˈspaɪt/ - prep. 尽管
**effort**/ˈefərt/ - n. 努力

841 次点击
所在节点   问与答  问与答
13 条回复
InkStone
InkStone
30 天前
这不是模型的问题,而是这种长上下文的任务就不适合放在一个 prompt 中完成,最好拆分成多次交互。

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

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

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

生成例句,是否包含所有单词,继续生成?
jsjcjsjc
26 天前
@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()

```

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1106810

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX