最近在开发一个使用 AI 取名字的应用。
但是在过程中,发现 AI 生成名字的时候,有一定的问题。
比如在生成 2 字名称的时候,如果设定了姓氏,风格,性别。那么似乎所有的 AI(我几乎试了国内的所有 AI ,以及 chatgpt),都无法生成完全不重复的 100 个名字。不使用任何深度思考。因为会很慢。
比如这个提示词:
姓李,男性。风格为传统,总长度为 2 个字。给我生成 100 个绝不重复的名字。以数组格式发给我。要符合中华姓名的美学。
为什么要加要符合中华姓名的美学,否则会生成李猪,李屎这种完全不符合的人命的名字。
deepseek
kimi
豆包
chatgpt o3mini
大伙有没有好的办法,在不改变上面这个参数的前提下,怎么能让 ai 生成的名字不重复?
![]() |
1
ppcoin 10 小时 19 分钟前
claude 试了一下还行啊
[ "李泽", "李恒", "李阳", "李鸿", "李昊", "李瑞", "李谦", "李宇", "李昌", "李衡", "李澄", "李青", "李晖", "李兆", "李正", "李明", "李庆", "李涛", "李峰", "李寒", "李晟", "李海", "李辰", "李远", "李岩", "李松", "李文", "李松", "李博", "李林", "李翔", "李强", "李俊", "李超", "李浩", "李轩", "李伟", "李鹏", "李耀", "李山", "李德", "李和", "李成", "李康", "李平", "李乐", "李荣", "李建", "李光", "李华", "李维", "李嘉", "李庭", "李国", "李钧", "李承", "李风", "李雷", "李震", "李洋", "李云", "李凯", "李元", "李安", "李信", "李谊", "李诚", "李彬", "李宁", "李生", "李贤", "李然", "李楠", "李方", "李仁", "李进", "李春", "李冬", "李夏", "李秋", "李帆", "李弘", "李禾", "李星", "李栋", "李源", "李瑜", "李天", "李理", "李志", "李敬", "李善", "李思", "李雨", "李涵", "李逸", "李宜", "李哲", "李民", "李豪" ] |
![]() |
2
icaolei 10 小时 14 分钟前
|
![]() |
3
shintendo 10 小时 4 分钟前
temperature 调高,调用一次后把结果去重,再调用一次,直到拿够 100 个
|
4
aloxaf 9 小时 52 分钟前
拿 deepseek v3 复现了下,默认参数下确实重复非常多,presence_penalty 调到 1.2 就只有 1 个重复了。
|
5
paopjian 8 小时 13 分钟前
要求 不重复, 这种有查询的指令任务, 需要他能够自身不断回调回查把, 单次生成任务无法回溯之前的生成内容, 最低效的方法就是输出一个记录一下, 再生成下一个. 上面那个大哥的方法也不错, 输出一百个自己查一遍重, 有重的再重新生成,直到一百个
|
![]() |
6
matrix1010 6 小时 59 分钟前
完全不重复这种精确要求 LLM 是肯定做不到的。深度思考也做不到,比如上面那张图就有重复的。只需单次生成且内容简单的话 presence_penalty 可能是比较好的降低重复率的方法
|
7
azarasi 5 小时 41 分钟前
这么简单的需求还用 LLM 干啥,手挫一个马尔可夫链不就行了
|
![]() |
8
ZztGqk 5 小时 19 分钟前
用一个 set 多试几次吧,llm 就是这样的
|