{"id":16326990,"url":"https://github.com/errec/is-replicant","last_synced_at":"2025-10-06T03:22:12.509Z","repository":{"id":253489130,"uuid":"843668271","full_name":"Errec/is-replicant","owner":"Errec","description":"FastAPI-based backend API for detecting AI-generated text","archived":false,"fork":false,"pushed_at":"2024-09-02T03:13:22.000Z","size":54,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-23T08:58:50.594Z","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":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Errec.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2024-08-17T04:06:25.000Z","updated_at":"2024-10-25T18:22:17.000Z","dependencies_parsed_at":"2024-11-06T18:55:28.571Z","dependency_job_id":null,"html_url":"https://github.com/Errec/is-replicant","commit_stats":null,"previous_names":["errec/is-replicant"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Errec%2Fis-replicant","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Errec%2Fis-replicant/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Errec%2Fis-replicant/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Errec%2Fis-replicant/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Errec","download_url":"https://codeload.github.com/Errec/is-replicant/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250403832,"owners_count":21424794,"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-10-10T23:10:02.984Z","updated_at":"2025-10-06T03:22:12.505Z","avatar_url":"https://github.com/Errec.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# is-Replicant - An AI-Generated Text Detection API\n\n## Introduction\n\nThe **is-Replicant** project provides a FastAPI-based backend API for detecting AI-generated text. It analyzes text inputs using natural language processing techniques and returns probabilities indicating whether the text was generated by AI. The service uses PostgreSQL, follows secure API practices and Python data libraries.\n\n## Development\n\nBuild and start the services with Docker Compose:\n\n```bash\ndocker-compose build\ndocker-compose up -d\n```\n\nSwagger documentation:\n\n- Swagger UI: \u003chttp://localhost:8000/api/v1/docs\u003e\n- ReDoc: \u003chttp://localhost:8000/api/v1/redoc\u003e\n- OpenAPI JSON: \u003chttp://localhost:8000/api/v1/openapi.json\u003e\n\n## Production Deployment\n\nBuild a standalone API image and run it with an environment file:\n\n```bash\ncp api/.env.example api/.env  # update values for your environment\ndocker build -t is-replicant-api -f api/Dockerfile api\ndocker run --env-file api/.env -p 8000:8000 is-replicant-api\n```\n\nThe repository includes a sample GitHub Actions workflow in\n`.github/workflows/docker.yml` that builds the container and starts it with\ntemporary environment variables.\n\n## Testing\n\nInstall dependencies and run the test suite:\n\n```bash\npip install -r api/requirements.txt\npytest\n```\n\n## Database Population\n\nPopulate the database with the initial word and phrase data:\n\n```bash\npython db/populate_db.py\n```\n\nThe script will prompt for confirmation before inserting records. Use the `--force` flag or the `POPULATE_DB_FORCE=1` environment variable to bypass the prompt in automated environments:\n\n```bash\npython db/populate_db.py --force\n# or\nPOPULATE_DB_FORCE=1 python db/populate_db.py\n```\n\n## pgAdmin\n\n- URL: \u003chttp://localhost:5050\u003e\n- Email: `admin@admin.com`\n- Password: `admin`\n- `POSTGRES_DB=is_replicant`\n- `POSTGRES_USER=user`\n- `POSTGRES_PASSWORD=password`\n\n## TODO\n\n- [x] CI/CD\n- [x] Docker Setup\n- [x] Project Initial Structure\n- [x] Setting Up FastAPI Application\n- [x] Database Migrations\n- [x] Swagger\n- [x] Text Analysis Service\n- [x] Database Models\n- [x] Database Connection and ORM Setup\n- [x] Running with Uvicorn\n- [x] Text Analysis Endpoints\n- [x] Testing the API\n- [x] Testing with Pytest\n- [ ] Deploy API\n- [ ] Set DB to cloud\n- [x] Prompt before populate DB\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ferrec%2Fis-replicant","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ferrec%2Fis-replicant","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ferrec%2Fis-replicant/lists"}