{"id":13646340,"url":"https://github.com/beachwang/dail-sql","last_synced_at":"2025-04-05T15:08:35.385Z","repository":{"id":191315873,"uuid":"684399912","full_name":"BeachWang/DAIL-SQL","owner":"BeachWang","description":"A efficient and effective few-shot NL2SQL method on GPT-4.","archived":false,"fork":false,"pushed_at":"2024-06-04T11:58:31.000Z","size":2073,"stargazers_count":401,"open_issues_count":6,"forks_count":66,"subscribers_count":5,"default_branch":"main","last_synced_at":"2024-10-14T07:27:09.525Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/BeachWang.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-08-29T03:54:39.000Z","updated_at":"2024-10-09T11:54:58.000Z","dependencies_parsed_at":null,"dependency_job_id":"686d919a-39dc-4023-ae74-37177dedfa80","html_url":"https://github.com/BeachWang/DAIL-SQL","commit_stats":null,"previous_names":["beachwang/dail-sql"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BeachWang%2FDAIL-SQL","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BeachWang%2FDAIL-SQL/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BeachWang%2FDAIL-SQL/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BeachWang%2FDAIL-SQL/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BeachWang","download_url":"https://codeload.github.com/BeachWang/DAIL-SQL/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247353746,"owners_count":20925329,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-02T01:02:53.234Z","updated_at":"2025-04-05T15:08:35.367Z","avatar_url":"https://github.com/BeachWang.png","language":"Python","funding_links":[],"categories":["Others","💬 Classic Model"],"sub_categories":[],"readme":"# DAIL-SQL\n\nDAIL-SQL is a highly effective and efficient approach for optimizing the utilization of LLM on Text-to-SQL.\nIt has proven its superiority by achieving a remarkable score of 86.2% on the Spider leaderboard using GPT-4 during testing.\nNotably, it only requires approximately 1600 tokens per question in Spider-dev.\nIn addition to this, we have achieved an even higher score of 86.6% on Spider-test through self-consistency voting of GPT-4.\n\n\u003eDawei Gao, Haibin Wang, Yaliang Li, Xiuyu Sun, Yichen Qian, Bolin Ding and Jingren Zhou.\nText-to-SQL Empowered by Large Language Models: A Benchmark Evaluation.\nCoRR abs/2308.15363 (2023).\n\nPaper link: [arXiv](https://arxiv.org/abs/2308.15363)\n\n## Overview\n\nTo provide a systematical and in-depth understanding of Text-to-SQL prompt engineering, we empirically evaluate several strategies from prior studies.\nFirst, we compare several typical question representations in zero-shot scenario with different LLMs, and identify their pros and cons.\nAfter that, we investigate example selection and organization strategies in few-shot scenario.\nFor example selection, we compare different selection strategies and further verify the hypothesis that LLMs learn from the mappings between question and SQL skeleton.\nRegarding example organization, we explore the option of displaying full information, solely SQL queries or question-SQL pair.\n\nLast but not least, our integrated solution, named DAIL-SQL, refreshes the Spider leaderboard with 86.6% execution accuracy, and wins the first place.\nCompared with previous solutions, DAIL-SQL encodes structure knowledge as SQL statements, selects examples based on their skeleton similarities and removes cross-domain knowledge from examples for token efficiency.\n\n## Environment Setup\nTo set up the environment, you should download the [stanford-cornlp](http://nlp.stanford.edu/software/stanford-corenlp-full-2018-10-05.zip) and unzip it to the folder `./third_party`.\nNext, you need to launch the coreNLP server:\n```coreNLP\napt install default-jre\napt install default-jdk\ncd third_party/stanford-corenlp-full-2018-10-05\nnohup java -mx4g -cp \"*\" edu.stanford.nlp.pipeline.StanfordCoreNLPServer \u0026\ncd ../../\n```\nIn addition, set up the Python environment:\n```python_env\nconda create -n DAIL-SQL python=3.8\nconda activate DAIL-SQL\npython -m pip install --upgrade pip\npip install -r requirements.txt\npython nltk_downloader.py\n```\n\n## Data Preparation\nYou need to download the [Spider](https://yale-lily.github.io/spider) to the folder `./dataset/spider`.\n\n## Run\n\n### Data Preprocess\n```\npython data_preprocess.py\n```\n### Prompt Generation\nSelect examples with masked question similarity:\n```\npython generate_question.py \\\n--data_type spider \\\n--split test \\\n--tokenizer gpt-3.5-turbo \\\n--max_seq_len 4096 \\\n--prompt_repr SQL \\\n--k_shot 9 \\\n--example_type QA \\\n--selector_type  EUCDISQUESTIONMASK\n```\nSelect examples considering both question similarity and query similarity:\n```\npython generate_question.py \\\n--data_type spider \\\n--split test \\\n--tokenizer gpt-3.5-turbo \\\n--max_seq_len 4096 \\\n--selector_type EUCDISMASKPRESKLSIMTHR \\\n--pre_test_result [your_pre_generated_queries_file] \\\n--prompt_repr SQL \\\n--k_shot 9 \\\n--example_type QA\n```\n\n### Calling the LLM\nWithout voting:\n```\npython ask_llm.py \\\n--openai_api_key [your_openai_api_key]  \\\n--model gpt-4 \\\n--question [prompt_dir]\n```\nWith self-consistency voting:\n```\npython ask_llm.py \\\n--openai_api_key [your_openai_api_key]  \\\n--model gpt-4 \\\n--question [prompt_dir] \\\n--n 5 \\\n--db_dir ./dataset/spider/database \\\n--temperature 1.0\n```\n\n### Running Example\n```\nbash run_dail_sql_mini.sh [your_openai_api_key]\n```\n\n## Experiments\n\nIn our works, we systematically study prompt engineering for LLM-based Text-to-SQL methods, \nincluding five question representations, two prompt components, four example selections, and three example organizations on four LLMs. \nThe study sheds light on identifying suitable question representations and key points to leverage the in-context learning capacity of LLMs for Text-to-SQL task.\nWe present our experimental results in the Spider train split. \nHere, we take [Graphix](https://github.com/AlibabaResearch/DAMO-ConvAI/tree/main/graphix) as our preliminary model to pre-generate the SQL query for acquiring query similarity.\nPlease refer to the [Test Suites](https://github.com/taoyds/test-suite-sql-eval) for evaluation metrics.\n\n### Question Representations\nWe evaluate five question representations summarized from other works under zero-shot scenario, \nemploying four LLMs: GPT-4, GPT-3.5-TURBO, TEXT-DAVINCI-003, and Vicuna-33B. We find Code Representation Prompt and OpenAI Demostration Prompt are preferred.\n\u003cbr\u003e\n\u003cdiv align=\"center\"\u003e\u003cimg width=\"45%\" src=\"img/openai_0shot_em.png\"\u003e\u003cimg width=\"45%\" src=\"img/openai_0shot_em.png\"\u003e\u003c/div\u003e\n\u003cbr\u003e\nWe also investigate the impact of foreign key and \"with no explanation\" rule implication. Both the foreign key and the \"with no explanation\" rule implication\nare beneficial for Text-to-SQL task.\n\u003cbr\u003e\n\u003cdiv align=\"center\"\u003e\u003cimg width=\"45%\" src=\"img/component_foreign_key_em.png\"\u003e\u003cimg width=\"45%\" src=\"img/component_foreign_key_ex.png\"\u003e\u003c/div\u003e\n\u003cdiv align=\"center\"\u003e\u003cimg width=\"45%\" src=\"img/component_explanation_em.png\"\u003e\u003cimg width=\"45%\" src=\"img/component_explanation_ex.png\"\u003e\u003c/div\u003e\n\u003cbr\u003e\n\n### Example Selections\n\nWe then study the effects of different example selections under few-shot scenario. \nWe emphasize the importance to consider both question similarity and query similarity as DAIL-SQL does in example selection.\n\n\u003ctable\u003e\n    \u003ctr\u003e\n        \u003ctd rowspan=\"2\"\u003eFew-shot\u003c/td\u003e\n        \u003ctd rowspan=\"2\"\u003eSelection\u003c/td\u003e\n        \u003ctd rowspan=\"2\"\u003eQuestion\u003cbr\u003eSimilarity\u003c/td\u003e\n        \u003ctd rowspan=\"2\"\u003eQuery\u003cbr\u003eSimilarity\u003c/td\u003e\n        \u003ctd colspan=\"2\"\u003eGPT-4\u003c/td\u003e\n        \u003ctd colspan=\"2\"\u003eGPT-3.5-TURBO\u003c/td\u003e\n        \u003ctd colspan=\"2\"\u003eTEXT-DAVINCI-003\u003c/td\u003e\n        \u003ctd colspan=\"2\"\u003eVicuna-33B\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003e EM \u003c/td\u003e\n        \u003ctd\u003e EX \u003c/td\u003e\n        \u003ctd\u003e EM \u003c/td\u003e\n        \u003ctd\u003e EX \u003c/td\u003e\n        \u003ctd\u003e EM \u003c/td\u003e\n        \u003ctd\u003e EX \u003c/td\u003e\n        \u003ctd\u003e EM \u003c/td\u003e\n        \u003ctd\u003e EX \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003e 0-shot \u003c/td\u003e\n        \u003ctd\u003e - \u003c/td\u003e\n        \u003ctd\u003e - \u003c/td\u003e\n        \u003ctd\u003e - \u003c/td\u003e\n        \u003ctd\u003e 22.1 \u003c/td\u003e\n        \u003ctd\u003e 72.3 \u003c/td\u003e\n        \u003ctd\u003e 34.6 \u003c/td\u003e\n        \u003ctd\u003e 74.4 \u003c/td\u003e\n        \u003ctd\u003e 31.7 \u003c/td\u003e\n        \u003ctd\u003e 71.7 \u003c/td\u003e\n        \u003ctd\u003e 6.9 \u003c/td\u003e\n        \u003ctd\u003e 43.7 \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd rowspan=\"4\"\u003e 1-shot \u003c/td\u003e\n        \u003ctd\u003e Random \u003c/td\u003e\n        \u003ctd\u003e 0.23 \u003c/td\u003e\n        \u003ctd\u003e 0.47 \u003c/td\u003e\n        \u003ctd\u003e 41.7 \u003c/td\u003e\n        \u003ctd\u003e 77.4 \u003c/td\u003e\n        \u003ctd\u003e 45.9 \u003c/td\u003e\n        \u003ctd\u003e 73.9 \u003c/td\u003e\n        \u003ctd\u003e 38.2 \u003c/td\u003e\n        \u003ctd\u003e 70.6 \u003c/td\u003e\n        \u003ctd\u003e 14.4 \u003c/td\u003e\n        \u003ctd\u003e 47.9 \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003e Question Similarity Selection \u003c/td\u003e\n        \u003ctd\u003e 0.39 \u003c/td\u003e\n        \u003ctd\u003e 0.65 \u003c/td\u003e\n        \u003ctd\u003e 53.3 \u003c/td\u003e\n        \u003ctd\u003e 78.8 \u003c/td\u003e\n        \u003ctd\u003e 51.9 \u003c/td\u003e\n        \u003ctd\u003e 74.3 \u003c/td\u003e\n        \u003ctd\u003e 44.1 \u003c/td\u003e\n        \u003ctd\u003e 72.3 \u003c/td\u003e\n        \u003ctd\u003e 16.5 \u003c/td\u003e\n        \u003ctd\u003e 48.5 \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003e Masked Question Similarity Selection \u003c/td\u003e\n        \u003ctd\u003e 0.57 \u003c/td\u003e\n        \u003ctd\u003e 0.80 \u003c/td\u003e\n        \u003ctd\u003e 58.2 \u003c/td\u003e\n        \u003ctd\u003e 79.1 \u003c/td\u003e\n        \u003ctd\u003e 57.4 \u003c/td\u003e\n        \u003ctd\u003e 76.0 \u003c/td\u003e\n        \u003ctd\u003e 47.9 \u003c/td\u003e\n        \u003ctd\u003e 75.0 \u003c/td\u003e\n        \u003ctd\u003e 21.4 \u003c/td\u003e\n        \u003ctd\u003e 48.7 \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003e DAIL Selection \u003c/td\u003e\n        \u003ctd\u003e 0.56 \u003c/td\u003e\n        \u003ctd\u003e 0.95 \u003c/td\u003e\n        \u003ctd\u003e 62.1 \u003c/td\u003e\n        \u003ctd\u003e 80.2 \u003c/td\u003e\n        \u003ctd\u003e 59.5 \u003c/td\u003e\n        \u003ctd\u003e 75.5 \u003c/td\u003e\n        \u003ctd\u003e 51.9 \u003c/td\u003e\n        \u003ctd\u003e 76.9 \u003c/td\u003e\n        \u003ctd\u003e 22.8 \u003c/td\u003e\n        \u003ctd\u003e 49.2 \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd rowspan=\"4\"\u003e 3-shot \u003c/td\u003e\n        \u003ctd\u003e Random \u003c/td\u003e\n        \u003ctd\u003e 0.23 \u003c/td\u003e\n        \u003ctd\u003e 0.48 \u003c/td\u003e\n        \u003ctd\u003e 48.9 \u003c/td\u003e\n        \u003ctd\u003e 79.4 \u003c/td\u003e\n        \u003ctd\u003e 49.0 \u003c/td\u003e\n        \u003ctd\u003e 73.6 \u003c/td\u003e\n        \u003ctd\u003e 41.7 \u003c/td\u003e\n        \u003ctd\u003e 71.6 \u003c/td\u003e\n        \u003ctd\u003e 16.8 \u003c/td\u003e\n        \u003ctd\u003e 46.9 \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003e Question Similarity Selection \u003c/td\u003e\n        \u003ctd\u003e 0.37 \u003c/td\u003e\n        \u003ctd\u003e 0.63 \u003c/td\u003e\n        \u003ctd\u003e 56.3 \u003c/td\u003e\n        \u003ctd\u003e 79.2 \u003c/td\u003e\n        \u003ctd\u003e 53.8 \u003c/td\u003e\n        \u003ctd\u003e 74.7 \u003c/td\u003e\n        \u003ctd\u003e 52.2 \u003c/td\u003e\n        \u003ctd\u003e 74.1 \u003c/td\u003e\n        \u003ctd\u003e 21.1 \u003c/td\u003e\n        \u003ctd\u003e 47.1 \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003e Masked Question Similarity Selection \u003c/td\u003e\n        \u003ctd\u003e 0.54 \u003c/td\u003e\n        \u003ctd\u003e 0.78 \u003c/td\u003e\n        \u003ctd\u003e 66.1 \u003c/td\u003e\n        \u003ctd\u003e 81.5 \u003c/td\u003e\n        \u003ctd\u003e 61.1 \u003c/td\u003e\n        \u003ctd\u003e 77.3 \u003c/td\u003e\n        \u003ctd\u003e 59.7 \u003c/td\u003e\n        \u003ctd\u003e 77.0 \u003c/td\u003e\n        \u003ctd\u003e 27.7 \u003c/td\u003e\n        \u003ctd\u003e 52.3 \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003e DAIL Selection \u003c/td\u003e\n        \u003ctd\u003e 0.53 \u003c/td\u003e\n        \u003ctd\u003e 0.94 \u003c/td\u003e\n        \u003ctd\u003e 69.1 \u003c/td\u003e\n        \u003ctd\u003e 81.7 \u003c/td\u003e\n        \u003ctd\u003e 63.9 \u003c/td\u003e\n        \u003ctd\u003e 77.8 \u003c/td\u003e\n        \u003ctd\u003e 64.4 \u003c/td\u003e\n        \u003ctd\u003e 79.5 \u003c/td\u003e\n        \u003ctd\u003e 30.7 \u003c/td\u003e\n        \u003ctd\u003e 53.6 \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd rowspan=\"4\"\u003e 5-shot \u003c/td\u003e\n        \u003ctd\u003e Random \u003c/td\u003e\n        \u003ctd\u003e 0.23 \u003c/td\u003e\n        \u003ctd\u003e 0.48 \u003c/td\u003e\n        \u003ctd\u003e 51.6 \u003c/td\u003e\n        \u003ctd\u003e 79.5 \u003c/td\u003e\n        \u003ctd\u003e 52.9 \u003c/td\u003e\n        \u003ctd\u003e 75.7 \u003c/td\u003e\n        \u003ctd\u003e 49.0 \u003c/td\u003e\n        \u003ctd\u003e 72.1 \u003c/td\u003e\n        \u003ctd\u003e - \u003c/td\u003e\n        \u003ctd\u003e - \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003e Question Similarity Selection \u003c/td\u003e\n        \u003ctd\u003e 0.36 \u003c/td\u003e\n        \u003ctd\u003e 0.61 \u003c/td\u003e\n        \u003ctd\u003e 58.2 \u003c/td\u003e\n        \u003ctd\u003e 79.9 \u003c/td\u003e\n        \u003ctd\u003e 55.9 \u003c/td\u003e\n        \u003ctd\u003e 75.1 \u003c/td\u003e\n        \u003ctd\u003e 54.8 \u003c/td\u003e\n        \u003ctd\u003e 73.2 \u003c/td\u003e\n        \u003ctd\u003e - \u003c/td\u003e\n        \u003ctd\u003e - \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003e Masked Question Similarity Selection \u003c/td\u003e\n        \u003ctd\u003e 0.52 \u003c/td\u003e\n        \u003ctd\u003e 0.77 \u003c/td\u003e\n        \u003ctd\u003e 66.8 \u003c/td\u003e\n        \u003ctd\u003e 82.0 \u003c/td\u003e\n        \u003ctd\u003e 62.3 \u003c/td\u003e\n        \u003ctd\u003e 77.9 \u003c/td\u003e\n        \u003ctd\u003e 64.7 \u003c/td\u003e\n        \u003ctd\u003e 78.6 \u003c/td\u003e\n        \u003ctd\u003e - \u003c/td\u003e\n        \u003ctd\u003e - \u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd\u003e DAIL Selection \u003c/td\u003e\n        \u003ctd\u003e 0.52 \u003c/td\u003e\n        \u003ctd\u003e 0.94 \u003c/td\u003e\n        \u003ctd\u003e 71.9 \u003c/td\u003e\n        \u003ctd\u003e 82.4 \u003c/td\u003e\n        \u003ctd\u003e 66.7 \u003c/td\u003e\n        \u003ctd\u003e 78.1 \u003c/td\u003e\n        \u003ctd\u003e 67.7 \u003c/td\u003e\n        \u003ctd\u003e 80.5 \u003c/td\u003e\n        \u003ctd\u003e - \u003c/td\u003e\n        \u003ctd\u003e - \u003c/td\u003e\n    \u003c/tr\u003e\n\n\u003c/table\u003e\n\n### Example Organizations\n\nFinally, we examine example organizations in DAIL-SQL, \nexcluding the token-cost database schema in the examples and only presenting question and query pairs to LLMs. \nIn our analysis, we contrast the DAIL-SQL organization with both Full-Information and SQL-Only organizations, \nfinding that the DAIL organization is a highly effective and efficient approach for potent LLMs.\n\n\u003ctable\u003e\n    \u003ctr\u003e\n        \u003ctd align=\"center\"\u003e\u003cimg width=\"80%\" src=\"img/organization_spider_dev_gpt4.png\"\u003e\u003cbr /\u003eGPT-4\u003c/td\u003e\n        \u003ctd align=\"center\"\u003e\u003cimg width=\"80%\" src=\"img/organization_spider_dev_chatgpt.png\"\u003e\u003cbr /\u003eGPT-3.5-TURBO\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n        \u003ctd align=\"center\"\u003e\u003cimg width=\"80%\" src=\"img/organization_spider_dev_davinci.png\"\u003e\u003cbr /\u003eTEXT-DAVINCI-003\u003c/td\u003e\n        \u003ctd align=\"center\"\u003e\u003cimg width=\"80%\" src=\"img/organization_spider_dev_vicuna.png\"\u003e\u003cbr /\u003eVicuna-33B\u003c/td\u003e\n    \u003c/tr\u003e\n\u003c/table\u003e\n\n## Evaluation of DAIL-SQL\nIn evaluation, we take GPT-4 itself as the preliminary model for acquiring query similarity. \nThe commands are shown in `run_dail_sql.sh` and `run_dail_sql_with_sc.sh`.\n| Method    | Dev EM    | Dev EX    | Test EM   | Test EX   |\n| --------- | --------- | --------- | --------- | --------- |\n| DAIL-SQL+GPT-4    | 70.0  | 83.1  | 66.5  | 86.2  |\n| DAIL-SQL+GPT-4+Self-consistency   | 68.7  | 83.6  | 66.0  | 86.6  |\n\n## Bibtex\nIf DAIL-SQL is useful for you, please consider to cite it. Thank you! :)\n```bit_tex\n@article{dail_sql,\n    author  =   {Dawei Gao and\n    Haibin Wang and\n    Yaliang Li and\n    Xiuyu Sun and\n    Yichen Qian and\n    Bolin Ding and\n    Jingren Zhou},\n    title   =   {Text-to-SQL Empowered by Large Language Models: A Benchmark Evaluation},\n    journal =   {CoRR},\n    volume  =   {abs/2308.15363},\n    year    =   {2023}\n}\n```\n\n## Acknowledgements\n\nThe codes of schema-linking are inspired by [RAT-SQL](https://github.com/microsoft/rat-sql/tree/master).\n\nThe codes of self-consistency voting are inspired by [C3SQL](https://github.com/bigbigwatermalon/C3SQL).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbeachwang%2Fdail-sql","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbeachwang%2Fdail-sql","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbeachwang%2Fdail-sql/lists"}