# Expected Parrot Domain-Specific Language
<p align="center">
<img src="https://github.com/expectedparrot/edsl/blob/main/static/logo.png?raw=true" alt="edsl.png" width="100"/>
</p>
The Expected Parrot Domain-Specific Language (EDSL) package lets you conduct computational social science and market research with AI. Use it to design surveys and experiments, simulate responses with large language models, and perform data labeling and other research tasks. Results are formatted as specified datasets and come with built-in methods for analyzing, visualizing, and sharing.
## ๐ Links
- [PyPI](https://pypi.org/project/edsl/)
- [Documentation](https://docs.expectedparrot.com)
- [Getting started](https://docs.expectedparrot.com/en/latest/starter_tutorial.html)
- [Discord](https://discord.com/invite/mxAYkjfy9m)
- [Twitter](https://x.com/ExpectedParrot)
- [LinkedIn](https://www.linkedin.com/company/expectedparrot/)
- [Blog](https://blog.expectedparrot.com)
## ๐ Hello, World!
A quick example:
```python
# Import a question type
from edsl import QuestionMultipleChoice
# Construct a question using the question type template
q = QuestionMultipleChoice(
question_name="example_question",
question_text="How do you feel today?",
question_options=["Bad", "OK", "Good"]
)
# Run it with the default language model
results = q.run()
# Inspect the results in a dataset
results.select("example_question").print()
```
Output:
```python
โโโโโโโโโโโโโโโโโโโโโ
โ answer โ
โ .example_question โ
โกโโโโโโโโโโโโโโโโโโโโฉ
โ Good โ
โโโโโโโโโโโโโโโโโโโโโ
```
## ๐ป Requirements
* EDSL is compatible with Python 3.9 - 3.12.
* API keys for large language models that you want to use, stored in a `.env` file.
See instructions on [storing API keys](https://docs.expectedparrot.com/en/latest/api_keys.html).
## ๐ก Contributions, feature requests & bugs
Interested in contributing? Want us to add a new feature? Found a bug for us to squash?
Please send us an email at [info@expectedparrot.com](mailto:info@expectedparrot.com) or message us at our [Discord channel](https://discord.com/invite/mxAYkjfy9m).
Raw data
{
"_id": null,
"home_page": "https://www.expectedparrot.com/",
"name": "edsl",
"maintainer": null,
"docs_url": null,
"requires_python": "<3.13,>=3.9.1",
"maintainer_email": null,
"keywords": "LLM, social science, surveys, user research",
"author": "Apostolos Filippas",
"author_email": "apostolos@expectedparrot.com",
"download_url": "https://files.pythonhosted.org/packages/ef/fb/1caaf5d12393913fa962bdf19fdaab625a938c9674b2df7b463527ee37a0/edsl-0.1.38.tar.gz",
"platform": null,
"description": "# Expected Parrot Domain-Specific Language \n<p align=\"center\">\n <img src=\"https://github.com/expectedparrot/edsl/blob/main/static/logo.png?raw=true\" alt=\"edsl.png\" width=\"100\"/>\n</p>\n\nThe Expected Parrot Domain-Specific Language (EDSL) package lets you conduct computational social science and market research with AI. Use it to design surveys and experiments, simulate responses with large language models, and perform data labeling and other research tasks. Results are formatted as specified datasets and come with built-in methods for analyzing, visualizing, and sharing. \n\n## \ud83d\udd17 Links\n- [PyPI](https://pypi.org/project/edsl/)\n- [Documentation](https://docs.expectedparrot.com)\n- [Getting started](https://docs.expectedparrot.com/en/latest/starter_tutorial.html) \n- [Discord](https://discord.com/invite/mxAYkjfy9m)\n- [Twitter](https://x.com/ExpectedParrot)\n- [LinkedIn](https://www.linkedin.com/company/expectedparrot/)\n- [Blog](https://blog.expectedparrot.com)\n\n## \ud83c\udf0e Hello, World!\nA quick example:\n\n```python\n# Import a question type\nfrom edsl import QuestionMultipleChoice\n\n# Construct a question using the question type template\nq = QuestionMultipleChoice(\n question_name=\"example_question\",\n question_text=\"How do you feel today?\",\n question_options=[\"Bad\", \"OK\", \"Good\"]\n)\n\n# Run it with the default language model\nresults = q.run()\n\n# Inspect the results in a dataset\nresults.select(\"example_question\").print()\n```\n\nOutput:\n```python\n\u250f\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2513\n\u2503 answer \u2503\n\u2503 .example_question \u2503\n\u2521\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2529\n\u2502 Good \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n```\n\n## \ud83d\udcbb Requirements\n* EDSL is compatible with Python 3.9 - 3.12.\n* API keys for large language models that you want to use, stored in a `.env` file.\nSee instructions on [storing API keys](https://docs.expectedparrot.com/en/latest/api_keys.html).\n\n## \ud83d\udca1 Contributions, feature requests & bugs\nInterested in contributing? Want us to add a new feature? Found a bug for us to squash? \nPlease send us an email at [info@expectedparrot.com](mailto:info@expectedparrot.com) or message us at our [Discord channel](https://discord.com/invite/mxAYkjfy9m).\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Create and analyze LLM-based surveys",
"version": "0.1.38",
"project_urls": {
"Documentation": "https://docs.expectedparrot.com",
"Homepage": "https://www.expectedparrot.com/"
},
"split_keywords": [
"llm",
" social science",
" surveys",
" user research"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "9d620d572ca80ed77ae3d2dd5713ace564e72210b8bed41f40015f3583ae83fa",
"md5": "ef3217b5f620ef4c2add36c80b269abf",
"sha256": "aa7a30b2ff9239e901e2bbae5393c0bdcca33a552ceb6e0d668a99189dc3ab3c"
},
"downloads": -1,
"filename": "edsl-0.1.38-py3-none-any.whl",
"has_sig": false,
"md5_digest": "ef3217b5f620ef4c2add36c80b269abf",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<3.13,>=3.9.1",
"size": 431778,
"upload_time": "2024-11-26T17:50:30",
"upload_time_iso_8601": "2024-11-26T17:50:30.672129Z",
"url": "https://files.pythonhosted.org/packages/9d/62/0d572ca80ed77ae3d2dd5713ace564e72210b8bed41f40015f3583ae83fa/edsl-0.1.38-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "effb1caaf5d12393913fa962bdf19fdaab625a938c9674b2df7b463527ee37a0",
"md5": "dcac37cc33ebfacac296aed8e21d17c3",
"sha256": "61547286d49b31bf13262c3222d2cc8594c9c768acd8a386bd4374e8e91a376b"
},
"downloads": -1,
"filename": "edsl-0.1.38.tar.gz",
"has_sig": false,
"md5_digest": "dcac37cc33ebfacac296aed8e21d17c3",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<3.13,>=3.9.1",
"size": 328650,
"upload_time": "2024-11-26T17:50:32",
"upload_time_iso_8601": "2024-11-26T17:50:32.241004Z",
"url": "https://files.pythonhosted.org/packages/ef/fb/1caaf5d12393913fa962bdf19fdaab625a938c9674b2df7b463527ee37a0/edsl-0.1.38.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-11-26 17:50:32",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "edsl"
}