{"id":26864302,"url":"https://github.com/martincastroalvarez/llm-react-api","last_synced_at":"2025-09-06T10:37:52.029Z","repository":{"id":285259068,"uuid":"957272204","full_name":"MartinCastroAlvarez/llm-react-api","owner":"MartinCastroAlvarez","description":"Web app to analyze and visualize character interactions in Project Gutenberg e-books using LLM.","archived":false,"fork":false,"pushed_at":"2025-03-30T16:04:36.000Z","size":5349,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-22T17:50:32.094Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","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/MartinCastroAlvarez.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":"2025-03-30T00:24:47.000Z","updated_at":"2025-03-30T16:04:40.000Z","dependencies_parsed_at":"2025-03-30T17:32:10.340Z","dependency_job_id":null,"html_url":"https://github.com/MartinCastroAlvarez/llm-react-api","commit_stats":null,"previous_names":["martincastroalvarez/llm-react-api"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/MartinCastroAlvarez/llm-react-api","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MartinCastroAlvarez%2Fllm-react-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MartinCastroAlvarez%2Fllm-react-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MartinCastroAlvarez%2Fllm-react-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MartinCastroAlvarez%2Fllm-react-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MartinCastroAlvarez","download_url":"https://codeload.github.com/MartinCastroAlvarez/llm-react-api/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MartinCastroAlvarez%2Fllm-react-api/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273892837,"owners_count":25186561,"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","status":"online","status_checked_at":"2025-09-06T02:00:13.247Z","response_time":2576,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":"2025-03-31T03:38:28.613Z","updated_at":"2025-09-06T10:37:51.997Z","avatar_url":"https://github.com/MartinCastroAlvarez.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# React \u0026 LLM API\n\nWeb app to analyze and visualize character interactions in Project Gutenberg e-books using LLM.\n\n![wallpaper.jpg](wallpaper.jpg)\n\n## Overview\n\nThis project is a React-based single page application, styled using TailwindCSS, that allows users to explore and analyze character interactions in Project Gutenberg e-books. The application leverages a Language Learning Model (LLM) to process the text of e-books and visually represent character interactions through an interactive network graph.\n\nThe application is deployed on AWS using the AWS Cloud Development Kit (CDK), which automates the setup of AWS Lambda for backend processing and API Gateway for handling requests efficiently. This deployment strategy was chosen to take advantage of AWS's free tier, making it cost-effective and scalable.\n\n![example1.png](example1.png)\n\n## References\n\n- [React Flow](https://reactflow.dev/learn)\n- [Guternberg Org](https://www.gutenberg.org/ebooks/1787)\n\n## Notes\n\n- To avoid high expenses associated with real LLM processing, this project uses mocked results.\n- Avoids complex asynchronous tasks like workers or Kafka by simulating a job submission API to minimize latency.\n- Utilizes AWS Lambda and React to keep costs low, leveraging AWS's free tier for cost-effective scalability.\n- No authentication or authorization is implemented in this prototype.\n- CORS is not enforced properly, in order to keep the project simple.\n- No testing is implemented, in order to keep the project simple.\n- The API host is hardcoded in the frontend, in order to keep the project simple.\n- Prompt engineering is not part of this prototype, to keep it within 1 hour of coding.\n\n## Setup\n\nInstall the dependencies using the following command:\n\n```bash\nyarn install\n```\n\nTo run the React app locally, simply run:\n\n```bash\nyarn dev\n```\n\n## Build\n\nBuild the app with the following command:\n\n```bash\nAWS_PROFILE=myprofile yarn build\n```\n\n## Deploy\n\nDeploy the app using AWS CDK using the following command:\n\n```bash\nAWS_PROFILE=myprofile yarn deploy\n```\n\n## Test\n\nTo run the integration tests, run the following command:\n\n```bash\nyarn test\n```\n\n## Troubleshooting\n\nTo view the API logs, run the following command:\n\n```bash\nyarn run logs\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmartincastroalvarez%2Fllm-react-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmartincastroalvarez%2Fllm-react-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmartincastroalvarez%2Fllm-react-api/lists"}