[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-shyamsn97--mario-gpt":3,"tool-shyamsn97--mario-gpt":65},[4,17,25,39,48,56],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":16},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",138956,2,"2026-04-05T11:33:21",[13,14,15],"开发框架","Agent","语言模型","ready",{"id":18,"name":19,"github_repo":20,"description_zh":21,"stars":22,"difficulty_score":10,"last_commit_at":23,"category_tags":24,"status":16},3704,"NextChat","ChatGPTNextWeb\u002FNextChat","NextChat 是一款轻量且极速的 AI 助手，旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性，以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发，NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。\n\n这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言，它也提供了便捷的自托管方案，支持一键部署到 Vercel 或 Zeabur 等平台。\n\nNextChat 的核心亮点在于其广泛的模型兼容性，原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型，让用户在一个界面即可自由切换不同 AI 能力。此外，它还率先支持 MCP（Model Context Protocol）协议，增强了上下文处理能力。针对企业用户，NextChat 提供专业版解决方案，具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能，满足公司对数据隐私和个性化管理的高标准要求。",87618,"2026-04-05T07:20:52",[13,15],{"id":26,"name":27,"github_repo":28,"description_zh":29,"stars":30,"difficulty_score":10,"last_commit_at":31,"category_tags":32,"status":16},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",84991,"2026-04-05T10:45:23",[33,34,35,36,14,37,15,13,38],"图像","数据工具","视频","插件","其他","音频",{"id":40,"name":41,"github_repo":42,"description_zh":43,"stars":44,"difficulty_score":45,"last_commit_at":46,"category_tags":47,"status":16},3128,"ragflow","infiniflow\u002Fragflow","RAGFlow 是一款领先的开源检索增强生成（RAG）引擎，旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体（Agent）能力相结合，不仅支持从各类文档中高效提取知识，还能让模型基于这些知识进行逻辑推理和任务执行。\n\n在大模型应用中，幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构（如表格、图表及混合排版），显著提升了信息检索的准确度，从而有效减少模型“胡编乱造”的现象，确保回答既有据可依又具备时效性。其内置的智能体机制更进一步，使系统不仅能回答问题，还能自主规划步骤解决复杂问题。\n\n这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统，还是致力于探索大模型在垂直领域落地的创新者，都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口，既降低了非算法背景用户的上手门槛，也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目，它正成为连接通用大模型与行业专有知识之间的重要桥梁。",77062,3,"2026-04-04T04:44:48",[14,33,13,15,37],{"id":49,"name":50,"github_repo":51,"description_zh":52,"stars":53,"difficulty_score":45,"last_commit_at":54,"category_tags":55,"status":16},519,"PaddleOCR","PaddlePaddle\u002FPaddleOCR","PaddleOCR 是一款基于百度飞桨框架开发的高性能开源光学字符识别工具包。它的核心能力是将图片、PDF 等文档中的文字提取出来，转换成计算机可读取的结构化数据，让机器真正“看懂”图文内容。\n\n面对海量纸质或电子文档，PaddleOCR 解决了人工录入效率低、数字化成本高的问题。尤其在人工智能领域，它扮演着连接图像与大型语言模型（LLM）的桥梁角色，能将视觉信息直接转化为文本输入，助力智能问答、文档分析等应用场景落地。\n\nPaddleOCR 适合开发者、算法研究人员以及有文档自动化需求的普通用户。其技术优势十分明显：不仅支持全球 100 多种语言的识别，还能在 Windows、Linux、macOS 等多个系统上运行，并灵活适配 CPU、GPU、NPU 等各类硬件。作为一个轻量级且社区活跃的开源项目，PaddleOCR 既能满足快速集成的需求，也能支撑前沿的视觉语言研究，是处理文字识别任务的理想选择。",74913,"2026-04-05T10:44:17",[15,33,13,37],{"id":57,"name":58,"github_repo":59,"description_zh":60,"stars":61,"difficulty_score":62,"last_commit_at":63,"category_tags":64,"status":16},3215,"awesome-machine-learning","josephmisiti\u002Fawesome-machine-learning","awesome-machine-learning 是一份精心整理的机器学习资源清单，汇集了全球优秀的机器学习框架、库和软件工具。面对机器学习领域技术迭代快、资源分散且难以甄选的痛点，这份清单按编程语言（如 Python、C++、Go 等）和应用场景（如计算机视觉、自然语言处理、深度学习等）进行了系统化分类，帮助使用者快速定位高质量项目。\n\n它特别适合开发者、数据科学家及研究人员使用。无论是初学者寻找入门库，还是资深工程师对比不同语言的技术选型，都能从中获得极具价值的参考。此外，清单还延伸提供了免费书籍、在线课程、行业会议、技术博客及线下聚会等丰富资源，构建了从学习到实践的全链路支持体系。\n\n其独特亮点在于严格的维护标准：明确标记已停止维护或长期未更新的项目，确保推荐内容的时效性与可靠性。作为机器学习领域的“导航图”，awesome-machine-learning 以开源协作的方式持续更新，旨在降低技术探索门槛，让每一位从业者都能高效地站在巨人的肩膀上创新。",72149,1,"2026-04-03T21:50:24",[13,37],{"id":66,"github_repo":67,"name":68,"description_en":69,"description_zh":70,"ai_summary_zh":70,"readme_en":71,"readme_zh":72,"quickstart_zh":73,"use_case_zh":74,"hero_image_url":75,"owner_login":76,"owner_name":77,"owner_avatar_url":78,"owner_bio":79,"owner_company":79,"owner_location":79,"owner_email":80,"owner_twitter":81,"owner_website":82,"owner_url":83,"languages":84,"stars":97,"forks":98,"last_commit_at":99,"license":100,"difficulty_score":10,"env_os":101,"env_gpu":102,"env_ram":101,"env_deps":103,"category_tags":110,"github_topics":79,"view_count":10,"oss_zip_url":79,"oss_zip_packed_at":79,"status":16,"created_at":111,"updated_at":112,"faqs":113,"releases":144},1431,"shyamsn97\u002Fmario-gpt","mario-gpt","[Neurips 2023] Generating Mario Levels with GPT2. Code for the paper \"MarioGPT: Open-Ended Text2Level Generation through Large Language Models\" https:\u002F\u002Farxiv.org\u002Fabs\u002F2302.05981","MarioGPT 是一款基于大语言模型的开源工具，能够根据简单的文字描述自动生成《超级马里奥》游戏关卡。它解决了传统关卡设计依赖人工绘制、难以快速获得多样化且可玩性高的地图这一痛点，让“文本生成关卡”成为现实。\n\n该项目核心采用经过微调的 DistilGPT2 模型，通过在大量经典马里奥关卡数据上进行训练，学会了将地形元素（如管道、敌人、砖块）转化为文本序列，并能依据用户输入的提示词（例如“很多管道和敌人，高海拔”）预测并生成新的关卡布局。其独特之处在于利用成熟的自然语言处理架构来处理空间结构数据，支持通过调整温度参数控制生成的随机性与可玩性平衡，甚至允许基于现有关卡进行续写扩展。\n\nMarioGPT 非常适合游戏开发者、AI 研究人员以及关卡设计师使用。开发者可以将其作为原型设计的辅助工具，快速验证创意；研究人员可借此探索多模态生成技术在游戏领域的应用；设计师则能利用它激发灵感或批量生产测试素材。虽然生成的关卡并非完美无缺，但它为可控且多样化的环境生成迈出了重要一步，配合提供的交互式播放和自动寻路测试功能，让用户能直观评估生成结果。","\u003Cdiv align=\"center\">    \n\n# MarioGPT: Open-Ended Text2Level Generation through Large Language Models\n[![Paper](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fpaper-arxiv.2302.05981-B31B1B.svg)](https:\u002F\u002Farxiv.org\u002Fabs\u002F2302.05981) \n[![PyPi version](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fshyamsn97_mario-gpt_readme_23e615cec730.png)](https:\u002F\u002Fpypi.org\u002Fproject\u002Fmario-gpt)\n\u003Ca href=\"https:\u002F\u002Fhuggingface.co\u002Fspaces\u002Fmultimodalart\u002Fmariogpt\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F%20HuggingFace%20-Demo-blue.svg\" alt=\"HuggingFace Spaces\">\u003C\u002Fa>\n[![Open In Colab](https:\u002F\u002Fcolab.research.google.com\u002Fassets\u002Fcolab-badge.svg)](https:\u002F\u002Fcolab.research.google.com\u002Fdrive\u002F16KR9idJUim6RAiyPASoQAaC768AvOGxP?usp=sharing)\n\n[Playing Generated Level](#interacting-with-levels)            |  Generated Level\n:-------------------------:|:-------------------------:\n![alt text](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fshyamsn97_mario-gpt_readme_e6605a647655.gif) | ![alt text](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fshyamsn97_mario-gpt_readme_1a74e88e5b77.png)\n\n\u003C\u002Fdiv>\n\n\nHow does it work?\n----\n\nArchitecture           |  Example Prompt Generations\n:-------------------------:|:-------------------------:\n![alt text](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fshyamsn97_mario-gpt_readme_5471fa069644.png) | ![alt text](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fshyamsn97_mario-gpt_readme_5de3c78954f6.png)\n\n\nMarioGPT is a finetuned GPT2 model (specifically, [distilgpt2](https:\u002F\u002Fhuggingface.co\u002Fdistilgpt2)), that is trained on a subset Super Mario Bros and Super Mario Bros: The Lost Levels levels, provided by [The Video Game Level Corpus](https:\u002F\u002Fgithub.com\u002FTheVGLC\u002FTheVGLC). MarioGPT is able to generate levels, guided by a simple text prompt. This generation is not perfect, but we believe this is a great first step more controllable and diverse level \u002F environment generation. Forward generation:\n\n\n![alt text](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fshyamsn97_mario-gpt_readme_b4d9a38c62d8.gif)\n\nRequirements\n----\n- python3.8+\n\nInstallation\n---------------\nfrom pypi\n```\npip install mario-gpt\n```\n\nor from source\n```\ngit clone git@github.com:shyamsn97\u002Fmario-gpt.git\npython setup.py install\n```\n\n\nGenerating Levels\n-------------\n\nSince our models are built off of the amazing [transformers](https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Ftransformers) library, we host our model in https:\u002F\u002Fhuggingface.co\u002Fshyamsn97\u002FMario-GPT2-700-context-length\n\nThis code snippet is the minimal code you need to generate a mario level!\n\n```python\nfrom mario_gpt import MarioLM, SampleOutput\n\n# pretrained_model = shyamsn97\u002FMario-GPT2-700-context-length\n\nmario_lm = MarioLM()\n\n# use cuda to speed stuff up\n# import torch\n# device = torch.device('cuda')\n# mario_lm = mario_lm.to(device)\n\nprompts = [\"many pipes, many enemies, some blocks, high elevation\"]\n\n# generate level of size 1400, pump temperature up to ~2.4 for more stochastic but playable levels\ngenerated_level = mario_lm.sample(\n    prompts=prompts,\n    num_steps=1400,\n    temperature=2.0,\n    use_tqdm=True\n)\n\n# show string list\ngenerated_level.level\n\n# show PIL image\ngenerated_level.img\n\n# save image\ngenerated_level.img.save(\"generated_level.png\")\n\n# save text level to file\ngenerated_level.save(\"generated_level.txt\")\n\n# play in interactive\ngenerated_level.play()\n\n# run Astar agent\ngenerated_level.run_astar()\n\n# Continue generation\ngenerated_level_continued = mario_lm.sample(\n    seed=generated_level,\n    prompts=prompts,\n    num_steps=1400,\n    temperature=2.0,\n    use_tqdm=True\n)\n\n# load from text file\nloaded_level = SampleOutput.load(\"generated_level.txt\")\n\n# play from loaded (should be the same level that we generated)\nloaded_level.play()\n...\n```\n\nTraining\n-------------\nThe code to train MarioGPT is pretty simple and straightforward, the training class is located [here](mario_gpt\u002Ftrainer.py), with a small example [notebook](notebooks\u002FTrain.ipynb)\n\n```python\nimport torch\nfrom mario_gpt import MarioDataset, MarioLM, TrainingConfig, MarioGPTTrainer\n\n# create basic gpt model\nBASE = \"distilgpt2\"\nmario_lm = MarioLM(lm_path=BASE, tokenizer_path=BASE)\n\n# create dataset\ndataset = MarioDataset(mario_lm.tokenizer)\n\n# create training config and trainer\nconfig = TrainingConfig(save_iteration=10)\ntrainer = MarioGPTTrainer(mario_lm, dataset, config=config)\n\n# train for 100 iterations!\ntrainer.train(100, batch_size=1)\n```\n\n\n##### See [notebook](notebooks\u002FSampling.ipynb) for a more in depth tutorial to generate levels\n\nInteracting with Levels\n-------------\n\nRight now there are two ways to interact with generated levels:\n\n1) [Huggingface demo](https:\u002F\u002Fhuggingface.co\u002Fspaces\u002Fmultimodalart\u002Fmariogpt) -- Thanks to the amazing work by [multimodalart](https:\u002F\u002Fgithub.com\u002Fmultimodalart), you can generate and play levels interactively in the browser! In addition, gpus are provided so you don't have to own one yourself.\n2) Using the [play and astar methods](mario_gpt\u002Fsimulator\u002Fsimulator.py). These require you to have java installed on your computer (Java 8+ tested). For interactive, use the `play()` method and for astar use the `run_astar` method. Example:\n\n```python\nfrom mario_gpt import MarioLM\n\nmario_lm = MarioLM()\n\nprompts = [\"many pipes, many enemies, some blocks, high elevation\"]\n\ngenerated_level = mario_lm.sample(\n    prompts=prompts,\n    num_steps=1400,\n    temperature=2.0,\n    use_tqdm=True\n)\n\n# play in interactive\ngenerated_level.play()\n\n# run Astar agent\ngenerated_level.run_astar()\n```\n\n\n\n\n## Future Plans\nHere's a list of some stuff that will be added to the codebase!\n\n- [x] Basic inference code\n- [x] Add MarioBert Model\n- [x] Add Interactive simulator\n- [x] Training code from paper\n- [ ] Inpainting functionality from paper\n- [ ] Open-ended level generation code\n- [ ] Different generation methods (eg. constrained beam search, etc.)\n\n\nAuthors\n-------\nShyam Sudhakaran \u003Cshyamsnair@protonmail.com>, \u003Chttps:\u002F\u002Fgithub.com\u002Fshyamsn97>, https:\u002F\u002Fshyamsn97.github.io\u002F\n\nMiguel González-Duque \u003Cmigd@itu.dk>, \u003Chttps:\u002F\u002Fgithub.com\u002Fmiguelgondu>\n\nClaire Glanois \u003Cclgl@itu.dk>, \u003Chttps:\u002F\u002Fgithub.com\u002Fclaireaoi>\n\nMatthias Freiberger \u003Cmatfr@itu.dk>, \u003Chttps:\u002F\u002Fgithub.com\u002Fmatfrei>\n\nElias Najarro \u003Cenaj@itu.dk>, \u003Chttps:\u002F\u002Fgithub.com\u002Fenajx>\n \nSebastian Risi \u003Csebr@itu.dk>, \u003Chttps:\u002F\u002Fgithub.com\u002Fsebastianrisi>, https:\u002F\u002Fsebastianrisi.com\u002F\n\nCitation\n------\nIf you use the code for academic or commecial use, please cite the associated paper:\n```\n@misc{https:\u002F\u002Fdoi.org\u002F10.48550\u002Farxiv.2302.05981,\n  doi = {10.48550\u002FARXIV.2302.05981},\n  \n  url = {https:\u002F\u002Farxiv.org\u002Fabs\u002F2302.05981},\n  \n  author = {Sudhakaran, Shyam and González-Duque, Miguel and Glanois, Claire and Freiberger, Matthias and Najarro, Elias and Risi, Sebastian},\n  \n  keywords = {Artificial Intelligence (cs.AI), Computation and Language (cs.CL), FOS: Computer and information sciences, FOS: Computer and information sciences},\n  \n  title = {MarioGPT: Open-Ended Text2Level Generation through Large Language Models},\n  \n  publisher = {arXiv},\n  \n  year = {2023},\n  \n  copyright = {arXiv.org perpetual, non-exclusive license}\n}\n\n```\n","\u003Cdiv align=\"center\">    \n\n# MarioGPT：通过大语言模型实现开放式文本2级生成\n[![论文](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fpaper-arxiv.2302.05981-B31B1B.svg)](https:\u002F\u002Farxiv.org\u002Fabs\u002F2302.05981) \n[![PyPi 版本](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fshyamsn97_mario-gpt_readme_23e615cec730.png)](https:\u002F\u002Fpypi.org\u002Fproject\u002Fmario-gpt)\n\u003Ca href=\"https:\u002F\u002Fhuggingface.co\u002Fspaces\u002Fmultimodalart\u002Fmariogpt\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F%20HuggingFace%20-Demo-blue.svg\" alt=\"HuggingFace Spaces\">\u003C\u002Fa>\n[![在 Colab 中打开](https:\u002F\u002Fcolab.research.google.com\u002Fassets\u002Fcolab-badge.svg)](https:\u002F\u002Fcolab.research.google.com\u002Fdrive\u002F16KR9idJUim6RAiyPASoQAaC768AvOGxP?usp=sharing)\n\n[播放生成的关卡](#与关卡互动)            |  生成的关卡\n:-------------------------:|:-------------------------:\n![alt text](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fshyamsn97_mario-gpt_readme_e6605a647655.gif) | ![alt text](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fshyamsn97_mario-gpt_readme_1a74e88e5b77.png)\n\n\u003C\u002Fdiv>\n\n\n它是如何工作的？\n----\n\n架构           |  示例提示词生成\n:-------------------------:|:-------------------------:\n![alt text](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fshyamsn97_mario-gpt_readme_5471fa069644.png) | ![alt text](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fshyamsn97_mario-gpt_readme_5de3c78954f6.png)\n\n\nMarioGPT 是一款经过微调的 GPT2 模型（具体来说是 [distilgpt2](https:\u002F\u002Fhuggingface.co\u002Fdistilgpt2)），它基于《超级马里奥兄弟》和《超级马里奥兄弟：失落关卡》的特定子集进行训练，这些关卡由 [视频游戏关卡语料库](https:\u002F\u002Fgithub.com\u002FTheVGLC\u002FTheVGLC) 提供。MarioGPT 能够根据简单的文本提示生成关卡。虽然这种生成并非完美，但我们认为这已经是一个很好的第一步——能够更可控、更丰富地生成关卡和环境。前向生成：\n\n![alt text](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fshyamsn97_mario-gpt_readme_b4d9a38c62d8.gif)\n\n需求\n----\n- Python 3.8+\n\n安装\n---------------\n从 PyPI 安装\n```\npip install mario-gpt\n```\n\n或从源码安装\n```\ngit clone git@github.com:shyamsn97\u002Fmario-gpt.git\npython setup.py install\n```\n\n\n生成关卡\n-------------\n\n由于我们的模型基于出色的 [transformers](https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Ftransformers) 库构建，我们将其模型托管于 https:\u002F\u002Fhuggingface.co\u002Fshyamsn97\u002FMario-GPT2-700-context-length。\n\n这段代码片段正是生成马里奥关卡所需的最简代码！\n\n```python\nfrom mario_gpt import MarioLM, SampleOutput\n\n# 预训练模型 = shyamsn97\u002FMario-GPT2-700-context-length\n\nmario_lm = MarioLM()\n\n# 使用 CUDA 加速计算\n# import torch\n# device = torch.device('cuda')\n# mario_lm = mario_lm.to(device)\n\nprompts = [\"许多管道、众多敌人、一些方块、高海拔\"]\n\n# 生成大小为 1400 的关卡，并将泵送温度提升至约 2.4，以获得更具随机性但又足够可玩的关卡\ngenerated_level = mario_lm.sample(\n    prompts=prompts,\n    num_steps=1400,\n    temperature=2.0,\n    use_tqdm=True\n)\n\n# 显示字符串列表\ngenerated_level.level\n\n# 显示 PIL 图像\ngenerated_level.img\n\n# 保存图像\ngenerated_level.img.save(\"generated_level.png\")\n\n# 保存文本关卡到文件\ngenerated_level.save(\"generated_level.txt\")\n\n# 在交互式环境中播放\ngenerated_level.play()\n\n# 运行 A* 算法代理\ngenerated_level.run_astar()\n\n# 继续生成\ngenerated_level_continued = mario_lm.sample(\n    seed=generated_level,\n    prompts=prompts,\n    num_steps=1400,\n    temperature=2.0,\n    use_tqdm=True\n)\n\n# 从文本文件中加载\nloaded_level = SampleOutput.load(\"generated_level.txt\")\n\n# 从已加载的关卡中播放（应与我们生成的关卡完全一致）\nloaded_level.play()\n...\n```\n\n训练\n-------------\n训练 MarioGPT 的代码相当简单直接，训练类位于 [这里](mario_gpt\u002Ftrainer.py)，并附带了一个小型示例 [笔记本](notebooks\u002FTrain.ipynb)\n\n```python\nimport torch\nfrom mario_gpt import MarioDataset, MarioLM, TrainingConfig, MarioGPTTrainer\n\n# 创建基础 GPT 模型\nBASE = \"distilgpt2\"\nmario_lm = MarioLM(lm_path=BASE, tokenizer_path=BASE)\n\n# 创建数据集\ndataset = MarioDataset(mario_lm.tokenizer)\n\n# 创建训练配置和训练器\nconfig = TrainingConfig(save_iteration=10)\ntrainer = MarioGPTTrainer(mario_lm, dataset, config=config)\n\n# 训练 100 次迭代！\ntrainer.train(100, batch_size=1)\n```\n\n\n##### 请参阅 [笔记本](notebooks\u002FSampling.ipynb) 以获取更深入的关卡生成教程\n\n与关卡互动\n-------------\n\n目前，您可以通过以下两种方式与生成的关卡互动：\n\n1) [Hugging Face 演示](https:\u002F\u002Fhuggingface.co\u002Fspaces\u002Fmultimodalart\u002Fmariogpt) — 感谢 [multimodalart](https:\u002F\u002Fgithub.com\u002Fmultimodalart) 的出色工作，您可以在浏览器中实时交互式地生成并播放关卡！此外，我们还提供了 GPU 支持，因此您无需自行拥有 GPU。\n2) 使用 [play 和 astar 方法](mario_gpt\u002Fsimulator\u002Fsimulator.py)。这些方法需要您的电脑上安装 Java（已测试适用于 Java 8 及以上版本）。若需交互式操作，请使用 `play()` 方法；若需运行 A* 算法，请使用 `run_astar` 方法。示例如下：\n\n```python\nfrom mario_gpt import MarioLM\n\nmario_lm = MarioLM()\n\nprompts = [\"许多管道、众多敌人、一些方块、高海拔\"]\n\ngenerated_level = mario_lm.sample(\n    prompts=prompts,\n    num_steps=1400,\n    temperature=2.0,\n    use_tqdm=True\n)\n\n# 在交互式环境中播放\ngenerated_level.play()\n\n# 运行 A* 算法代理\ngenerated_level.run_astar()\n```\n\n\n\n\n## 未来计划\n以下是即将添加到代码库的一些功能清单！\n\n- [x] 基础推理代码\n- [x] 添加 MarioBert 模型\n- [x] 添加交互式模拟器\n- [x] 从论文中提取的训练代码\n- [ ] 从论文中引入的图像补全功能\n- [ ] 开放式关卡生成代码\n- [ ] 不同的生成方法（如约束束搜索等）\n\n作者\n-------\nShyam Sudhakaran \u003Cshyamsnair@protonmail.com>, \u003Chttps:\u002F\u002Fgithub.com\u002Fshyamsn97>, https:\u002F\u002Fshyamsn97.github.io\u002F\n\nMiguel González-Duque \u003Cmigd@itu.dk>, \u003Chttps:\u002F\u002Fgithub.com\u002Fmiguelgondu>\n\nClaire Glanois \u003Cclgl@itu.dk>, \u003Chttps:\u002F\u002Fgithub.com\u002Fclaireaoi>\n\nMatthias Freiberger \u003Cmatfr@itu.dk>, \u003Chttps:\u002F\u002Fgithub.com\u002Fmatfrei>\n\nElias Najarro \u003Cenaj@itu.dk>, \u003Chttps:\u002F\u002Fgithub.com\u002Fenajx>\n\nSebastian Risi \u003Csebr@itu.dk>, \u003Chttps:\u002F\u002Fgithub.com\u002Fsebastianrisi>, https:\u002F\u002Fsebastianrisi.com\u002F\n\n引用\n------\n如果您将该代码用于学术或商业用途，请务必引用相关论文：\n```\n@misc{https:\u002F\u002Fdoi.org\u002F10.48550\u002Farxiv.2302.05981,\n  doi = {10.48550\u002FARXIV.2302.05981},\n  \n  url = {https:\u002F\u002Farxiv.org\u002Fabs\u002F2302.05981},\n  \n  author = {Sudhakaran, Shyam and González-Duque, Miguel and Glanois, Claire and Freiberger, Matthias and Najarro, Elias and Risi, Sebastian},\n  \n  keywords = {人工智能 (cs.AI), 计算与语言 (cs.CL), FOS：计算机与信息科学, FOS：计算机与信息科学},\n  \n  title = {MarioGPT：通过大语言模型实现开放式文本2级生成},\n  \n  publisher = {arXiv},\n  \n  year = {2023},\n  \n  copyright = {arXiv.org 永久、非独家许可}\n}\n\n```","# MarioGPT 快速上手指南\n\nMarioGPT 是一个基于微调 GPT-2 模型（distilgpt2）的开源工具，能够根据简单的文本提示生成《超级马里奥》游戏关卡。它支持通过自然语言描述（如“很多管道、很多敌人”）来引导关卡生成，并提供交互式游玩和自动寻路功能。\n\n## 环境准备\n\n在开始之前，请确保您的开发环境满足以下要求：\n\n*   **操作系统**：Linux, macOS 或 Windows\n*   **Python 版本**：Python 3.8 或更高版本\n*   **前置依赖**：\n    *   若需使用交互式游玩 (`play()`) 或 A* 自动寻路 (`run_astar()`) 功能，必须安装 **Java 8** 或更高版本。\n    *   (可选) 若需加速生成过程，建议安装支持 CUDA 的 PyTorch 版本。\n\n## 安装步骤\n\n您可以选择通过 PyPI 直接安装，或从源代码安装。\n\n### 方式一：通过 PyPI 安装（推荐）\n\n```bash\npip install mario-gpt\n```\n\n> **提示**：国内用户若下载缓慢，可使用清华或阿里镜像源加速：\n> ```bash\n> pip install mario-gpt -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n> ```\n\n### 方式二：从源代码安装\n\n```bash\ngit clone git@github.com:shyamsn97\u002Fmario-gpt.git\ncd mario-gpt\npython setup.py install\n```\n\n## 基本使用\n\n以下是最小化的代码示例，展示如何加载模型、输入提示词并生成一个马里奥关卡。\n\n### 1. 生成并保存关卡\n\n```python\nfrom mario_gpt import MarioLM, SampleOutput\n\n# 初始化模型\n# 模型会自动从 HuggingFace 下载：shyamsn97\u002FMario-GPT2-700-context-length\nmario_lm = MarioLM()\n\n# (可选) 如果有 GPU，可以启用 CUDA 加速\n# import torch\n# device = torch.device('cuda')\n# mario_lm = mario_lm.to(device)\n\n# 定义文本提示词\nprompts = [\"many pipes, many enemies, some blocks, high elevation\"]\n\n# 生成关卡\n# num_steps: 生成长度 (默认 1400)\n# temperature: 温度参数 (约 2.0-2.4 可生成更具随机性但仍可玩的关卡)\ngenerated_level = mario_lm.sample(\n    prompts=prompts,\n    num_steps=1400,\n    temperature=2.0,\n    use_tqdm=True\n)\n\n# 查看生成的关卡字符串表示\nprint(generated_level.level)\n\n# 显示关卡图片 (需要 PIL 支持)\ngenerated_level.img.show()\n\n# 保存图片到本地\ngenerated_level.img.save(\"generated_level.png\")\n\n# 保存关卡文本数据到文件\ngenerated_level.save(\"generated_level.txt\")\n```\n\n### 2. 交互与测试\n\n生成关卡后，您可以直接在 Python 环境中进行试玩或运行自动代理测试（需已安装 Java）。\n\n```python\n# 交互式游玩 (弹出窗口)\ngenerated_level.play()\n\n# 运行 A* 算法代理自动通关测试\ngenerated_level.run_astar()\n```\n\n### 3. 续写关卡\n\n您可以基于已生成的关卡继续向后生成新的部分：\n\n```python\n# 基于之前的生成结果继续生成\ngenerated_level_continued = mario_lm.sample(\n    seed=generated_level,\n    prompts=prompts,\n    num_steps=1400,\n    temperature=2.0,\n    use_tqdm=True\n)\n```\n\n### 4. 加载已有关卡\n\n```python\n# 从文本文件加载之前保存的关卡\nloaded_level = SampleOutput.load(\"generated_level.txt\")\n\n# 再次游玩\nloaded_level.play()\n```","独立游戏开发者小林正在为一款复古平台跳跃游戏设计数百个风格各异的关卡，以丰富游戏的可玩性和重玩价值。\n\n### 没有 mario-gpt 时\n- **手工设计效率低下**：设计师必须逐个方块手动摆放地形、敌人和道具，设计一个高质量关卡耗时数小时，难以满足大量内容需求。\n- **创意多样性受限**：受限于个人思维定式，生成的关卡结构往往雷同，缺乏意想不到的地形组合或挑战模式。\n- **迭代成本高昂**：若需调整关卡难度或主题（如“增加管道数量”），几乎需要推倒重来，无法快速验证不同设计方案。\n- **程序生成缺乏语义控制**：传统随机生成算法只能产出杂乱无章的地形，无法理解“高海拔、多敌人”这类具体的自然语言指令。\n\n### 使用 mario-gpt 后\n- **文本驱动快速生成**：只需输入“许多管道、大量敌人、高海拔”等提示词，mario-gpt 即可在秒级时间内自动生成完整且可玩的关卡布局。\n- **无限创意组合**：基于大语言模型的泛化能力，mario-gpt 能创造出人类设计师未曾设想过的独特地形结构与敌人配置，极大丰富游戏内容。\n- **低成本敏捷迭代**：修改提示词即可实时重新生成变体关卡，开发者能迅速对比不同难度和风格的效果，大幅缩短调试周期。\n- **语义精准可控**：mario-gpt 真正理解了自然语言意图，将抽象的设计概念直接转化为符合游戏逻辑的具体关卡数据，实现了真正的 Text-to-Level。\n\nmario-gpt 将关卡设计从繁琐的手工劳动解放为高效的创意对话，让独立开发者也能拥有 AAA 级别的内容生产能力。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fshyamsn97_mario-gpt_1a74e88e.png","shyamsn97","Shyam Sudhakaran","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fshyamsn97_9f4b28d6.jpg",null,"shyamsnair@protonmail.com","SudhakaranShyam","https:\u002F\u002Fshyamsn97.github.io\u002F","https:\u002F\u002Fgithub.com\u002Fshyamsn97",[85,89,93],{"name":86,"color":87,"percentage":88},"Python","#3572A5",51.7,{"name":90,"color":91,"percentage":92},"Jupyter Notebook","#DA5B0B",48,{"name":94,"color":95,"percentage":96},"Makefile","#427819",0.3,1146,105,"2026-04-05T01:20:57","MIT","未说明","非必需（代码示例中默认使用 CPU，但注释提到可导入 torch 并使用 cuda 加速）",{"notes":104,"python":105,"dependencies":106},"1. 若要使用交互式游玩（play()）或 A* 寻路代理（run_astar()）功能，必须在计算机上安装 Java 8 或更高版本。2. 模型基于 Hugging Face 的 distilgpt2 进行微调，托管在 Hugging Face Hub 上，运行时会自动下载。3. 可通过 PyPI 直接安装或从源码安装。","3.8+",[107,108,109],"torch","transformers","PIL (Pillow)",[15,37],"2026-03-27T02:49:30.150509","2026-04-06T05:44:09.713861",[114,119,124,129,134,139],{"id":115,"question_zh":116,"answer_zh":117,"source_url":118},6550,"如何运行或玩生成的 AI 马里奥关卡？","项目已更新，现在支持直接运行关卡或使用 A* 代理进行游玩。请确保拉取最新代码，示例代码中包含了运行和测试生成关卡的方法。","https:\u002F\u002Fgithub.com\u002Fshyamsn97\u002Fmario-gpt\u002Fissues\u002F10",{"id":120,"question_zh":121,"answer_zh":122,"source_url":123},6551,"导入报错：'cannot import name MarioLM from mario_gpt' 怎么办？","这是一个导入路径问题。请将代码中的 `from mario_gpt import MarioLM` 修改为 `from mario_gpt.lm import MarioLM`。此外，建议更新 `transformers` 包到最新版本以确保兼容性。","https:\u002F\u002Fgithub.com\u002Fshyamsn97\u002Fmario-gpt\u002Fissues\u002F5",{"id":125,"question_zh":126,"answer_zh":127,"source_url":128},6552,"生成关卡时出现 'RuntimeError: invalid multinomial distribution' 错误如何解决？","这通常是由于显存（VRAM）不足导致的。默认生成示例峰值显存占用约为 6GB。如果您的显卡显存较小（如 2GB），可能会触发此错误。建议尝试在拥有更大显存（如 4GB 或以上）的 GPU 上运行，或者检查是否可以使用 CPU 模式生成（虽然速度较慢）。","https:\u002F\u002Fgithub.com\u002Fshyamsn97\u002Fmario-gpt\u002Fissues\u002F13",{"id":130,"question_zh":131,"answer_zh":132,"source_url":133},6553,"遇到 'CUBLAS_STATUS_EXECUTION_FAILED' 或随机 CUDA 错误怎么办？","这通常也是显存不足引起的随机性崩溃。生成过程峰值需要约 6GB 显存。如果显存只有 2GB，极易发生此错误。请尝试升级 PyTorch 版本，或在显存更大的 GPU（如 RTX 3080）上运行。","https:\u002F\u002Fgithub.com\u002Fshyamsn97\u002Fmario-gpt\u002Fissues\u002F12",{"id":135,"question_zh":136,"answer_zh":137,"source_url":138},6554,"无法导入 'TrainingConfig' 或训练器初始化报错怎么办？","这通常是依赖包版本不兼容导致的。请尝试将 `accelerate` 库的版本固定为 0.9.0（即 `pip install accelerate==0.9.0`）。如果后续遇到 Accelerator 类型错误，请检查配置项是否与当前库版本匹配。","https:\u002F\u002Fgithub.com\u002Fshyamsn97\u002Fmario-gpt\u002Fissues\u002F23",{"id":140,"question_zh":141,"answer_zh":142,"source_url":143},6555,"使用基础模型训练后，输出的关卡字符显示错误或乱码怎么办？","这是因为加载模型时未正确关联训练时的分词器（Tokenizer）。解决方法有两种：\n1. 加载模型后手动指定分词器：`mario_lm.tokenizer = dataset.tokenizer`。\n2. 或者在保存模型时确保同时保存了分词器，并在加载时使用正确的路径。\n参考代码：\n```python\nimport torch\nfrom mario_gpt import MarioDataset, MarioLM\nmario_lm = MarioLM(lm_path=\"path_to_trained\")\ndataset = MarioDataset(mario_lm.tokenizer)\n# 此时分词器已正确对齐\n```","https:\u002F\u002Fgithub.com\u002Fshyamsn97\u002Fmario-gpt\u002Fissues\u002F26",[145,150,155,160],{"id":146,"version":147,"summary_zh":148,"released_at":149},106115,"0.1.3","- Added easier sampling logic with `SampleOutput` classes\r\n- Fixed dimensionality bugs when passing in batched seeds","2023-02-21T19:32:36",{"id":151,"version":152,"summary_zh":153,"released_at":154},106116,"0.1.2","- Refactored LLM objects to make them a bit more organized\r\n- added Sampler object w\u002F Sampling output dataclass that has some helpful functions:\r\n        - automatically generates an image for you\r\n        - automatically generates txt file of level\r\n        - has `play` function that lets you play interactively\r\n        - has `run_astar` function that lets you watch the astar agent\r\n- Simulator object that interacts with mario jars from https:\u002F\u002Fgithub.com\u002Fshyamsn97\u002FMario-AI-Framework","2023-02-18T08:21:09",{"id":156,"version":157,"summary_zh":158,"released_at":159},106117,"0.1.1","- Added MarioBert Model\r\n- Refactored code a bit\r\n- fixed errors when providing multiple prompts","2023-02-16T03:14:48",{"id":161,"version":162,"summary_zh":163,"released_at":164},106118,"0.1.0","- Basic Objects\r\n- Simple Sampling logic","2023-02-14T08:05:24"]