{"id":13721317,"url":"https://github.com/etalab/piaf","last_synced_at":"2025-07-21T01:31:19.871Z","repository":{"id":37728031,"uuid":"200671676","full_name":"etalab/piaf","owner":"etalab","description":"Question Answering annotation platform - Plateforme d'annotation","archived":true,"fork":false,"pushed_at":"2025-01-21T13:17:24.000Z","size":30274,"stargazers_count":90,"open_issues_count":9,"forks_count":22,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-03-15T20:30:50.880Z","etag":null,"topics":["ai","annotation","annotation-tool","natural-language-processing","piaf","question-answering","text-annotation"],"latest_commit_sha":null,"homepage":"https://piaf.etalab.studio","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/etalab.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-08-05T14:29:21.000Z","updated_at":"2025-01-21T13:18:09.000Z","dependencies_parsed_at":"2022-08-27T02:39:48.703Z","dependency_job_id":null,"html_url":"https://github.com/etalab/piaf","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/etalab/piaf","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/etalab%2Fpiaf","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/etalab%2Fpiaf/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/etalab%2Fpiaf/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/etalab%2Fpiaf/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/etalab","download_url":"https://codeload.github.com/etalab/piaf/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/etalab%2Fpiaf/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266226308,"owners_count":23895688,"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":["ai","annotation","annotation-tool","natural-language-processing","piaf","question-answering","text-annotation"],"created_at":"2024-08-03T01:01:15.408Z","updated_at":"2025-07-21T01:31:19.865Z","avatar_url":"https://github.com/etalab.png","language":"Python","funding_links":[],"categories":["Annotation","Python"],"sub_categories":["Django"],"readme":"# Important information\n\nThis project is no longer active and is now archived. Thank you for your contributions! You can find the product dataset at the following link: [https://huggingface.co/datasets/AgentPublic/piaf](https://huggingface.co/datasets/AgentPublic/piaf).\n\nCe projet n'est plus actif et est désormais archivé. Merci pour vos contributions ! Vous pouvez retrouver le jeu de données produit au lien suivant : [https://huggingface.co/datasets/AgentPublic/piaf](https://huggingface.co/datasets/AgentPublic/piaf).\n\n# Piaf \n[![Codacy Badge](https://api.codacy.com/project/badge/Grade/b64ba7294eca479181b52d30a7d2e9d7)](https://app.codacy.com/app/guillim/piaf?utm_source=github.com\u0026utm_medium=referral\u0026utm_content=etalab/piaf\u0026utm_campaign=Badge_Grade_Dashboard)\n\n\u003cabbr title=\"Pour Une IA Francophone\"\u003ePiaf\u003c/abbr\u003e is an open-source QA (question answering) annotation plateform.  \nIt handles the following features:  \n* nice UI (conceived by a designer)\n* contributor enrollment (signup \u0026 mail validation)\n* contributor certification (by any member of the _admin_ team)\n* _admin_ team administration (by the super-admin)\n* input/output of texts to be annotated using the SQuAD format\n* users scoring (for bot and troll removal)\n* annotations managment\n\n\n## 1. Installation\n\nFirst clone the repo:\n\n```bash\ngit clone https://github.com/etalab/piaf.git\ncd piaf\n```\n\nThen create the environment variables (you can customise your API keys and passwords):\n```bash\ncp .env-example .env\n```\n\n\nNow you have two options: install the app with Docker or without\n\n### Installing with Docker\n\nAs a prerequisite, you need to have installed Docker \u0026 Docker-compose on your computer.\n\nThen, type:\n\n```bash\ndocker-compose pull\n```\n\n### Installing without\n\nSee the dedicated [README_without_docker](https://github.com/etalab/piaf/blob/master/README_without_docker.md)\n\n## 2. Running\n\n\n### Running with Docker\n\n```bash\nmake up\n```\nNote that it **takes a few minutes** to be up and running.  \nHave a look at the Makefile for more details\n### Running without\n\nSee the dedicated [README_without_docker](https://github.com/etalab/piaf/blob/master/README_without_docker.md)\n\n## 3. Setting up your annotation campaign\n\n### Reach the Admin panel\nOpen your web-browser at http://127.0.0.1:8000/login/ and login with the admin you created above (username: \"admin\", password: \"password\")\n\n![signup](/doc/signup.png)\n\nYou will then be able to reach the admin panel, for any administration task you may require:\n[127.0.0.1:8000/admin](http://127.0.0.1:8000/admin)\n\n![signup](/doc/admin_django.png)\n\n### Import texts\n\nWe designed a simple interface for you to upload in an easy way your texts you want to annotate. It's located here: [/app/admin](http://127.0.0.1:8000/app/admin)\n\n![signup](/doc/admin_json.png)\n\nHere is an example of input dataset: [Click here to download](/input-dataset-example.json)\n\nAs you can see in the example above, texts have to match the [SQuAD](https://rajpurkar.github.io/SQuAD-explorer/) format. But, for additional app options, we accept some extra fields:\n- __\"categorie\"__ : can be one of the followings - 'Religion', 'Géographie', 'Histoire', 'Sport', 'Arts', 'Société', 'Sciences' default to 'Société' if empty\n- __\"displaytitle\"__ : if you need a more deligthful title (falls back to title if empty)\n- __\"reference\"__ : integer like *7138870* for Wikipedia reference (falls back to 0 if empty)\n\n## 4. Annotation campaign\n\nSimply reach: [app/](http://127.0.0.1:8000/app/)  \nAnd give your users this URL so they can begin to annotate.\n\n![signup](/doc/menu.png)\n\nHere what is may look like:\n![signup](/doc/animation.gif)\n\n#### Admin section\n\nTo manage users, you can reach the admin dashboard: [admin/](http://127.0.0.1:8000/admin/)\n\n## 5. Export results\n\nOnce you have some annotated texts, you may want to download them so you can train your own QA model for instance. Please, download the result on the page : [app/admin](http://127.0.0.1:8000/app/admin)\n\n\n\n\n## 6. Configuration\n\n## - General configuration\n\nPassing most settings as environment variable will override the default settings. Here are some of the variable customisable:\n\n```bash\nDJANGO_ALLOW_SIGNUP=True # Allow users to singup (for crowdsourcing)\nDJANGO_USE_MAILJET=False # use Mailjet or the native Django mail service\nDJANGO_MAILJET_API_KEY=ffdfsfcfs2a00ad5ef367bfdsflsdk # put your Mailjet API key here, this is an example resulting in Errors\nDJANGO_MAILJET_SECRET_KEY=nhf41cc0d45ffsdfs6fdsfdsffdsfsf # put your Mailjet API secret here, this is an example resulting in Errors\nMATOMO_SITE_ID= # Matomo id\nWEBPACK_ENVIRONMENT_PRODUCTION=False # build the frontend  or run a 'npm run serve'\n```\n\n### with Docker\nEdit the .env file\n\n### without\nSee the dedicated [README_without_docker](https://github.com/etalab/piaf/blob/master/README_without_docker.md)\n\n### - Special Configuration for the VueJS app\n\nThere are some specific settings in a second `.env` file (it was simpler for us to keep two files). These settings are directly related with the frontend options. You will find it at this location: `src/piaf/front/.env`  \n\n```bash\nVUE_APP_ALLOW_ONBOARDING=true # Redirect new users to an onboarding process to teach them how to annotate a text\nVUE_APP_PRINT_BRAVO=false # Option to hide the \"Bravo\" page after questions are submitted\n```\n![signup](/doc/bravo.png)\n\n## Troubleshooting \u0026 Contact\n\nFeel free to [submit any feedback here](https://github.com/etalab/piaf/issues/new).\n\n### Run VueJS app alone\nIt's possible to run the frontend application by itself. For this to work out, you will need:\n- change `base: '/app'` into `base: '/'` in the file _src/piaf/front/src/router.js_\n- make sure `publicPath: '/'` in the file _src/piaf/front/vue.config.js_\n- to go to this folder _src/piaf/front_ \u0026 run `npm run watch`\n- and start your server from _src/piaf/static/front_ where npm builds the app.\n\n\n## Acknowledgements\n\nPIAF plateform was originally inspired by [Doccano](https://github.com/chakki-works/doccano). The PIAF team contributed to Doccano repository until the Doccano project was to far from PIAF needs.\n\n## License\n\n2018 chakki.  \n2019 DINUM, Guillim.  \n2020 DINUM, Guillim.  \n2021 DINUM, Guillim.  \n\nThis application is published under the MIT license.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fetalab%2Fpiaf","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fetalab%2Fpiaf","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fetalab%2Fpiaf/lists"}