# ESBMC AI
AI Augmented ESBMC processing. Passes the output from ESBMC to an AI model that allows the user to use natural language to understand the output. As the output from ESBMC can be quite technical in nature. The AI can also be asked other questions, such as suggestions on how to fix the problem outputted by ESBMC, and to offer further explanations.
This is an area of active research.
![ESBMC-AI Visual Abstract](https://github.com/Yiannis128/esbmc-ai/assets/9535618/1b51c57f-a769-4067-abd9-e81de5e7506b)
## Demonstration
[![Fix Code Demo](https://img.youtube.com/vi/anpRa6GpVdU/0.jpg)](https://www.youtube.com/watch?v=anpRa6GpVdU)
More videos can be found on the [ESBMC-AI Youtube Channel](https://www.youtube.com/@esbmc-ai)
## Wiki (Initial Setup/Configuration/Usage)
For full documentation, see the [ESBMC-AI Wiki](https://github.com/Yiannis128/esbmc-ai/wiki). The README file contains quick setup instructions, however it is recommended to read the following two pages, to fully guide you on how to download, set-up and run ESBMC-AI.
* [Initial Setup Wiki Page](https://github.com/Yiannis128/esbmc-ai/wiki/Initial-Setup).
* [Configuration Wiki Page](https://github.com/Yiannis128/esbmc-ai/wiki/Configuration).
* [Usage Wiki Page](https://github.com/Yiannis128/esbmc-ai/wiki/Initial-Setup#usage).
## Contributing
Pull requests are welcome. For major changes, please open an issue first
to discuss what you would like to change.
1. Keep the coding style consistent. Use the [Black](https://pypi.org/project/black/) code formatter.
2. Keep the righting style professional.
3. Include comments and function doc-strings.
4. Make sure to update tests as appropriate.
## Acknowledgments
ESBMC-AI is made possible by the following listed entities:
- [ESBMC](https://github.com/esbmc/esbmc)
- [OpenAI Chat API](https://platform.openai.com/docs/guides/chat)
- [Technology Innovation Institute](https://www.tii.ae/)
- [Hugging Face](https://huggingface.co/)
- [Langchain](https://github.com/langchain-ai/langchain)
## License
[GNU Affero General Public License v3.0](https://github.com/Yiannis128/esbmc-ai/blob/master/LICENSE)
Raw data
{
"_id": null,
"home_page": null,
"name": "esbmc-ai",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": null,
"keywords": "AI, LLM, automated code repair, esbmc",
"author": null,
"author_email": "Yiannis Charalambous <yiannis128@hotmail.com>",
"download_url": "https://files.pythonhosted.org/packages/b1/49/05e7f4ad78ee8da7228789b8c42ef7064948d35d80f4e08c18d8a0817aaf/esbmc_ai-0.5.1.tar.gz",
"platform": null,
"description": "# ESBMC AI\n\nAI Augmented ESBMC processing. Passes the output from ESBMC to an AI model that allows the user to use natural language to understand the output. As the output from ESBMC can be quite technical in nature. The AI can also be asked other questions, such as suggestions on how to fix the problem outputted by ESBMC, and to offer further explanations.\n\nThis is an area of active research.\n\n![ESBMC-AI Visual Abstract](https://github.com/Yiannis128/esbmc-ai/assets/9535618/1b51c57f-a769-4067-abd9-e81de5e7506b)\n\n## Demonstration\n\n[![Fix Code Demo](https://img.youtube.com/vi/anpRa6GpVdU/0.jpg)](https://www.youtube.com/watch?v=anpRa6GpVdU)\n\nMore videos can be found on the [ESBMC-AI Youtube Channel](https://www.youtube.com/@esbmc-ai)\n\n## Wiki (Initial Setup/Configuration/Usage)\n\nFor full documentation, see the [ESBMC-AI Wiki](https://github.com/Yiannis128/esbmc-ai/wiki). The README file contains quick setup instructions, however it is recommended to read the following two pages, to fully guide you on how to download, set-up and run ESBMC-AI.\n\n* [Initial Setup Wiki Page](https://github.com/Yiannis128/esbmc-ai/wiki/Initial-Setup).\n* [Configuration Wiki Page](https://github.com/Yiannis128/esbmc-ai/wiki/Configuration).\n* [Usage Wiki Page](https://github.com/Yiannis128/esbmc-ai/wiki/Initial-Setup#usage).\n\n## Contributing\n\nPull requests are welcome. For major changes, please open an issue first\nto discuss what you would like to change.\n\n1. Keep the coding style consistent. Use the [Black](https://pypi.org/project/black/) code formatter.\n2. Keep the righting style professional.\n3. Include comments and function doc-strings.\n4. Make sure to update tests as appropriate.\n\n## Acknowledgments\n\nESBMC-AI is made possible by the following listed entities:\n\n- [ESBMC](https://github.com/esbmc/esbmc)\n- [OpenAI Chat API](https://platform.openai.com/docs/guides/chat)\n- [Technology Innovation Institute](https://www.tii.ae/)\n- [Hugging Face](https://huggingface.co/)\n- [Langchain](https://github.com/langchain-ai/langchain)\n\n## License\n\n[GNU Affero General Public License v3.0](https://github.com/Yiannis128/esbmc-ai/blob/master/LICENSE)\n",
"bugtrack_url": null,
"license": null,
"summary": "LLM driven development and automatic repair kit.",
"version": "0.5.1",
"project_urls": {
"Documentation": "https://github.com/Yiannis128/esbmc-ai/wiki",
"Homepage": "https://github.com/Yiannis128/esbmc-ai",
"Issues": "https://github.com/Yiannis128/esbmc-ai/issues",
"Source Code": "https://github.com/Yiannis128/esbmc-ai"
},
"split_keywords": [
"ai",
" llm",
" automated code repair",
" esbmc"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "96e264de56c8f8ac0938f2ad40f5e4d2931474c6cca525c838bf682ccded5431",
"md5": "a6d8944a73531410404d04a1c450e340",
"sha256": "59bdd677fd5d026441cae16ee99bdcf8504058bd9d9208d5a66760e8363d834f"
},
"downloads": -1,
"filename": "esbmc_ai-0.5.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "a6d8944a73531410404d04a1c450e340",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 44994,
"upload_time": "2024-06-14T13:47:33",
"upload_time_iso_8601": "2024-06-14T13:47:33.307025Z",
"url": "https://files.pythonhosted.org/packages/96/e2/64de56c8f8ac0938f2ad40f5e4d2931474c6cca525c838bf682ccded5431/esbmc_ai-0.5.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "b14905e7f4ad78ee8da7228789b8c42ef7064948d35d80f4e08c18d8a0817aaf",
"md5": "bbbc4dd146e7ee9c913bc14addb043aa",
"sha256": "85d7d7a7c677113c1bc3d2b044fde50b5dcb74c073a12d1e348fd03ba88a157b"
},
"downloads": -1,
"filename": "esbmc_ai-0.5.1.tar.gz",
"has_sig": false,
"md5_digest": "bbbc4dd146e7ee9c913bc14addb043aa",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 37039,
"upload_time": "2024-06-14T13:47:35",
"upload_time_iso_8601": "2024-06-14T13:47:35.149081Z",
"url": "https://files.pythonhosted.org/packages/b1/49/05e7f4ad78ee8da7228789b8c42ef7064948d35d80f4e08c18d8a0817aaf/esbmc_ai-0.5.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-06-14 13:47:35",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "Yiannis128",
"github_project": "esbmc-ai",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [
{
"name": "aiohttp",
"specs": [
[
"==",
"3.8.4"
]
]
},
{
"name": "aiosignal",
"specs": [
[
"==",
"1.3.1"
]
]
},
{
"name": "annotated-types",
"specs": [
[
"==",
"0.6.0"
]
]
},
{
"name": "anyio",
"specs": [
[
"==",
"4.3.0"
]
]
},
{
"name": "async-timeout",
"specs": [
[
"==",
"4.0.2"
]
]
},
{
"name": "attrs",
"specs": [
[
"==",
"23.1.0"
]
]
},
{
"name": "certifi",
"specs": [
[
"==",
"2022.12.7"
]
]
},
{
"name": "charset-normalizer",
"specs": [
[
"==",
"3.1.0"
]
]
},
{
"name": "clang",
"specs": [
[
"==",
"17.0.6"
]
]
},
{
"name": "dataclasses-json",
"specs": [
[
"==",
"0.6.4"
]
]
},
{
"name": "distro",
"specs": [
[
"==",
"1.9.0"
]
]
},
{
"name": "frozenlist",
"specs": [
[
"==",
"1.3.3"
]
]
},
{
"name": "greenlet",
"specs": [
[
"==",
"3.0.3"
]
]
},
{
"name": "h11",
"specs": [
[
"==",
"0.14.0"
]
]
},
{
"name": "httpcore",
"specs": [
[
"==",
"1.0.5"
]
]
},
{
"name": "httpx",
"specs": [
[
"==",
"0.27.0"
]
]
},
{
"name": "idna",
"specs": [
[
"==",
"3.4"
]
]
},
{
"name": "jsonpatch",
"specs": [
[
"==",
"1.33"
]
]
},
{
"name": "jsonpointer",
"specs": [
[
"==",
"2.4"
]
]
},
{
"name": "langchain",
"specs": [
[
"==",
"0.1.16"
]
]
},
{
"name": "langchain-community",
"specs": [
[
"==",
"0.0.34"
]
]
},
{
"name": "langchain-core",
"specs": [
[
"==",
"0.1.45"
]
]
},
{
"name": "langchain-openai",
"specs": [
[
"==",
"0.1.3"
]
]
},
{
"name": "langchain-text-splitters",
"specs": [
[
"==",
"0.0.1"
]
]
},
{
"name": "langsmith",
"specs": [
[
"==",
"0.1.49"
]
]
},
{
"name": "libclang",
"specs": [
[
"==",
"18.1.1"
]
]
},
{
"name": "marshmallow",
"specs": [
[
"==",
"3.21.1"
]
]
},
{
"name": "multidict",
"specs": [
[
"==",
"6.0.4"
]
]
},
{
"name": "mypy-extensions",
"specs": [
[
"==",
"1.0.0"
]
]
},
{
"name": "numpy",
"specs": [
[
"==",
"1.26.4"
]
]
},
{
"name": "openai",
"specs": [
[
"==",
"1.23.2"
]
]
},
{
"name": "orjson",
"specs": [
[
"==",
"3.10.1"
]
]
},
{
"name": "packaging",
"specs": [
[
"==",
"23.2"
]
]
},
{
"name": "pydantic",
"specs": [
[
"==",
"2.7.0"
]
]
},
{
"name": "pydantic-core",
"specs": [
[
"==",
"2.18.1"
]
]
},
{
"name": "python-dotenv",
"specs": [
[
"==",
"1.0.0"
]
]
},
{
"name": "pyyaml",
"specs": [
[
"==",
"6.0.1"
]
]
},
{
"name": "regex",
"specs": [
[
"==",
"2023.3.23"
]
]
},
{
"name": "requests",
"specs": [
[
"==",
"2.29.0"
]
]
},
{
"name": "sniffio",
"specs": [
[
"==",
"1.3.1"
]
]
},
{
"name": "sqlalchemy",
"specs": [
[
"==",
"2.0.29"
]
]
},
{
"name": "tenacity",
"specs": [
[
"==",
"8.2.3"
]
]
},
{
"name": "tiktoken",
"specs": [
[
"==",
"0.6.0"
]
]
},
{
"name": "tqdm",
"specs": [
[
"==",
"4.66.2"
]
]
},
{
"name": "typing-extensions",
"specs": [
[
"==",
"4.11.0"
]
]
},
{
"name": "typing-inspect",
"specs": [
[
"==",
"0.9.0"
]
]
},
{
"name": "urllib3",
"specs": [
[
"==",
"1.26.15"
]
]
},
{
"name": "yarl",
"specs": [
[
"==",
"1.9.2"
]
]
}
],
"lcname": "esbmc-ai"
}