{"id":20081067,"url":"https://github.com/trangdata/askalex","last_synced_at":"2025-05-06T00:31:04.774Z","repository":{"id":207230055,"uuid":"716197808","full_name":"trangdata/askalex","owner":"trangdata","description":"An LLM-based tool for literature synthesis","archived":false,"fork":false,"pushed_at":"2024-06-20T16:07:43.000Z","size":4326,"stargazers_count":13,"open_issues_count":1,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-09T06:06:12.441Z","etag":null,"topics":["knowledge-graph","llm","openai","openalex","shiny"],"latest_commit_sha":null,"homepage":"","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/trangdata.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-11-08T16:29:27.000Z","updated_at":"2024-12-22T19:38:16.000Z","dependencies_parsed_at":"2023-11-14T19:25:36.387Z","dependency_job_id":"5d86d3c0-df94-4adb-a841-80bcf9152018","html_url":"https://github.com/trangdata/askalex","commit_stats":{"total_commits":2,"total_committers":1,"mean_commits":2.0,"dds":0.0,"last_synced_commit":"7a3aa20e4824ad590b32e1a2717b429ff820f1e6"},"previous_names":["trangdata/askalex"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trangdata%2Faskalex","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trangdata%2Faskalex/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trangdata%2Faskalex/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/trangdata%2Faskalex/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/trangdata","download_url":"https://codeload.github.com/trangdata/askalex/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252598223,"owners_count":21774223,"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":["knowledge-graph","llm","openai","openalex","shiny"],"created_at":"2024-11-13T15:33:19.442Z","updated_at":"2025-05-06T00:31:04.158Z","avatar_url":"https://github.com/trangdata.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# AskAlex\n\nAskAlex is a minimal Python Shiny app that integrates [OpenAI](https://platform.openai.com/docs) and [OpenAlex](https://openalex.org/) knowledge graph to optimize literature aggregation.\n\nGiven a scientific question from the user, AskAlex searches the OpenAlex database for 100 most relevant articles, uses semantic search to find the best 10 abstracts, and includes them in the prompt sent to OpenAI along with your original question.\nOutput is the OpenAI response and relevant articles.\n\n![AskAlex-workflow](images/diagram.png)\n\nCurrently, the app works with [Azure OpenAI endpoints](https://learn.microsoft.com/en-us/azure/ai-services/openai/reference).\n\n![AskAlex-demo](images/demo.gif)\n\n## ⚙️ Setup\n\nAssuming you have `conda` installed, you first want to create a new conda environment named `askalex` and install the necessary dependencies:\n\n``` sh\nconda create --name askalex\nconda activate askalex\nconda install pip\npip install -r requirements.txt\n```\n\nYou will also need the following environment variables in your `.env` file:\n```\nOPENAI_API_TYPE = azure\nOPENAI_API_KEY\nOPENAI_API_BASE\nOPENAI_API_VERSION = 2023-05-15\nAPP_RUN = local # or connect_server\n```\n\nand optionally:\n```\nOPENAI_PROXY \nOPENALEX_API_KEY \nCOMPANY_PROXY\nCOMPANY_NO_PROXY\n```\n\nFinally, you may need to modify the `model_engine_dict` variable in [`app.py`](app.py) to match the your company's available models on Azure.\n\n\n## 🌿 Run app\n\n``` sh\n# conda activate askalex\nshiny run --port 56486 --reload app.py\n```\n\n## 🛤️ Roadmap\n\n- fix token issue for text-davinci-003\n- use openai endpoint\n- add community key for public use\n- incorporate full text?\n- improve OpenAlex search (currently performing abstract search)\n\n## 🤝 Contributing\n\nThank you for considering contributing!\nPlease open an issue to discuss a contribution you'd like to implement to make this app better.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftrangdata%2Faskalex","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftrangdata%2Faskalex","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftrangdata%2Faskalex/lists"}