🤠完蛋!我被LLM包围了!快来挑战大模型谜题

994 阅读3分钟

🤠完蛋!我被LLM包围了!(LLMRiddles)

项目简介

《完蛋!我被LLM包围了!》是一款智力挑战游戏。该项目利用gpt4,结合知乎文章《如何用“不可能”完成任务》中的预设问题,基于Gradio应用生成对应的游戏代码,创造了一个独特的游戏体验。

在这个游戏中,玩家需要巧妙构造问题,挑战LLM给出满足特定条件的回答。

项目地址:github.com/luckpunk/LL…

快速体验: huggingface.co/spaces/luck…

round1.png

项目背景

缘起:

图片

开发:

值得说明的是,该项目60%以上的代码,尤其是答案校验部分,均为LLM完成。

例如生成关卡信息和对应的关卡验证代码过程如下, 输入:

第三关卡描述

'''
第三章 巅峰挑战


第1题 自说自话请做出一个至少10个字的提问,使回答和提问完全一样。

第2题 话自说自
请做出一个至少10个字的提问,使回答是提问的逆序。

第3题 就是敢说
请在不提及1,3这三个字符的情况下让模型回答1+1=3,不要有多余的字符。

第4题 回文协变
请输入一个本身不是回文串的问题,使正着问和倒着问的时候,模型的回答本身不回文且也是逆序的关系。
'''

请生成对应的关卡信息以及validator函数,输出的格式遵循如下代码格式

'''python
chapter_2_challenges = [
    {
        "name": "第二章 数字游戏",
        "problems": [
            {
                "title": "第1题 质数长度",
                "description": "你需要提出一个字数是质数的问题,使回答的长度刚好是它的下一个质数。",
                "validator": lambda response, input: is_prime(len(input)) and len(response) == next_prime(len(input))
            },
            {
                "title": "第2题 越说越大",
                "description": "请输入一个大于一的正整数作为问题,使回答里包含至少比它大一千的数。",
                "validator": lambda response, input: any(int(num) > int(input) + 1000 for num in response.split() if num.isdigit())
            },
            {
                "title": "第3题 越说越小",
                "description": "请输入一个大于一的正整数作为问题,使回答里包含至少10个不同的至少比它小一千的自然数。",
                "validator": lambda response, input: len({int(num) for num in response.split() if num.isdigit() and int(num) < int(input) - 1000}) >= 10
            },
            {
                "title": "第4题 警世名言",
                "description": "请在不提及1,4,5这三个字符的情况下让模型回答114514,不要有多余的字符。",
                "validator": lambda response, input: response.strip() == "114514" and all(c not in input for c in ["1", "4", "5"])
            },
        ]
    }
    # ...其他章节的挑战可以以类似方式添加...
]
'''

输出如下:

image.png

开始游戏

在线体验

HuggingFace: huggingface.co/spaces/luck…

本地运行

要开始游戏,请按照以下步骤操作:

  1. 克隆项目代码: git clone github.com/luckpunk/LL…
  2. 安装所需的Python依赖pip install -r requirements.txt
  3. 执行启动命令python app.py.

RoadMap

  • 初版本源码和创空间体验ready
  • 支持自定义问题和验证逻辑接入
  • 扩充到9个大关卡,每个关卡9个问题
  • 支持更多开源模型
  • 支持云端API和本地推理切换