ed-donner / llm_engineering
Repo to accompany my mastering LLM engineering course
- Stars
- 7,940 stars
- Forks
- 7,668 forks
- Language
- Jupyter Notebook
- License
- MIT
- Created
- Aug 31, 2024
- Last push
- Oct 31, 2026
- Updated
- Nov 11, 2026
Why these Tags: an agent read the README and quoted it
- Course from the description:
Repo to accompany my mastering LLM engineering course
An agent gave these Tags from the fixed Tag list in the AwesomeRepos source code. A code check kept each Tag only when its quote is in the text. A wrong Tag? Report an error with the form at the end of this page.
Admitted to the Repository Index on Nov 10, 2026: 7,919 stars on 2026-11-10.
Star History
188 days recorded, May 8, 2026 – Nov 11, 2026 (UTC). Net change +2,137 stars.
The star count of each day is the latest count minus the net stars of the later days.
Add this Star History to a README
The images follow the light or dark theme of the page that shows them, and update every hour.
Add ?theme=light or ?theme=dark
to the chart address to keep one theme.
Star History chart
[](https://awesomerepos.com/ed-donner/llm_engineering) Badge
[](https://awesomerepos.com/ed-donner/llm_engineering) Timeline
It gained stars on each of the 188 days recorded since May 8, 2026.
Its largest 7 days were May 15, 2026 to May 21, 2026: 206 stars.
In the 30 days to Nov 11, 2026 it got 297 stars, 7% fewer than in the 30 days before.
It had 5,803 stars before May 8, 2026 and has 7,940 stars now: 2,060 fewer than 10,000.
- Created on the Repository Host
- +46 stars in one day
- Largest star day recorded: +56 stars
- +51 stars in one day
- Latest push
- Entered the Repository Index: 7,919 stars on 2026-11-10
The timeline comes from the creation date and the releases on the Repository Host, the Admission, the Star History, and the Observations. Star milestones show only when the Star History records the day. The list shows up to 5 stable releases from the latest 10 releases recorded. When none of them is stable, one item counts the pre-releases. On the chart of net stars each day, a solid line marks each recorded release.
Forks and pushes
From 2 Observations, Nov 11, 2026 – Nov 12, 2026. Forks +14. AwesomeRepos saw a new push on 0 of 1 days.
- Nov 12, 2026: no new push
A filled day: the last push time changed since the Observation before it.
Health facts
Measured facts in four separate dimensions, each with a date and a source. AwesomeRepos does not add them into one score. AwesomeRepos reads the weekly commits, the changelog, and the community files each week for the 5,000 visible repositories with the most stars and for each rising repository. How AwesomeRepos defines each check
Copies a prompt for a coding agent. It has 1 task for the maintainers of ed-donner/llm_engineering.
Improve the Health Facts of the GitHub repository ed-donner/llm_engineering. AwesomeRepos measures facts about how a repository is maintained, released, secured, and documented. Its page for this repository is https://awesomerepos.com/ed-donner/llm_engineering. A change to the repository can improve each of the item below. Each item gives the measured fact or score, and a task. 1. A release in the last 365 days Fact: No GitHub release (read on 2026-11-10). Rule: The newest published GitHub release (a pre-release counts; a draft does not) is 365 days old or less. A repository that publishes only tags, or only to a package registry, has no GitHub release. The release refresh reads the 10 newest releases after each push to the repository, and at least each 30 days. The index refresh reads the date of the last push each day. Task: Prepare a release, but do not publish it. Find the changes since the newest release, propose the next semantic version and the release notes, and ask me to publish the GitHub release. If nothing changed since the newest release, skip this item. If the project publishes only to a package registry, add a CI step that also makes a GitHub release for each version tag. Rules for this work: - Each file must be true for this project. Do not copy text that does not apply to it. - Do not choose a licence, a contact, or a release version for me. Ask me. - Do not publish a release, change a repository setting, or push to the default branch. Make the changes on a new branch. - Keep each change small, and run the checks of this repository before you finish. - At the end, list each item as DONE, SKIPPED (with the reason), or NEEDS A DECISION (with the question). AwesomeRepos reads these facts again in its next scan. The definitions of the checks: https://awesomerepos.com/health-facts
Maintenance
2 of 4 checks (2 without data)-
Yes: Not archived
GitHub does not mark the repository as archived. Source
-
Yes: A push in the last 90 days
Last push on 2026-10-31, 11 days ago. Source
-
No data: Commits in the last 13 weeks
No data: AwesomeRepos has not read the weekly commits.
-
No data: Commits in 26 or more of the last 52 weeks
No data: AwesomeRepos has not read the weekly commits.
Releases
0 of 3 checks (2 without data)-
No: A release in the last 365 days
No GitHub release (read on 2026-11-10). Source
-
No data: The newest release tag is a semantic version
No data: no release.
-
No data: A changelog file at the root
No data: AwesomeRepos has not scanned this repository.
Security practice
0 of 1 check (1 without data)-
No data: A security policy
No data: AwesomeRepos has not scanned this repository.
AwesomeRepos has not asked OpenSSF Scorecard about this repository.
Community files
1 of 3 checks (2 without data)-
Yes: A licence
GitHub finds the licence MIT. Source
-
No data: A contributing guide
No data: AwesomeRepos has not scanned this repository.
-
No data: A code of conduct
No data: AwesomeRepos has not scanned this repository.
Dependencies in the index
This section shows the packages that connect this repository to other repositories in the index.
The GitHub dependency graph of this repository names 691 direct packages (scanned on Nov 12, 2026). Packages from 126 other repositories in the index are among them.
No scanned repository names a package from this repository.
Uses (in the index) · 126
-
PyPI: transformers
-
PyPI: langchain, langchain-anthropic, langchain-chroma, langchain-classic and 5 more
- pytorch/pytorch 105K
PyPI: torch
-
npm: tailwindcss
- pallets/flask 75K
PyPI: flask
-
PyPI: scikit-learn
- BerriAI/litellm 63K
PyPI: litellm
- nuxt/nuxt 61K
npm: nuxt
- Textualize/rich 58K
PyPI: rich
- vuejs/core 55K
npm: vue
Show all 126
- psf/requests 55K
PyPI: requests
- astral-sh/ruff 51K
PyPI: ruff
-
PyPI: pandas
-
PyPI: streamlit
- grpc/grpc 45K
PyPI: grpcio
-
PyPI: langgraph
-
PyPI: gradio, gradio-client
- psf/black 42K
PyPI: black
-
PyPI: textual
- numpy/numpy 33K
PyPI: numpy
-
PyPI: openai
- tqdm/tqdm 31K
PyPI: tqdm
-
PyPI: openai-agents
-
PyPI: chromadb
-
PyPI: python-telegram-bot
-
PyPI: pydantic, pydantic-core
- dmlc/xgboost 29K
PyPI: xgboost
-
PyPI: flatbuffers
-
PyPI: yfinance
-
PyPI: matplotlib
-
PyPI: datasets
- huggingface/peft 22K
PyPI: peft
- python/mypy 21K
PyPI: mypy
- openai/tiktoken 20K
PyPI: tiktoken
-
PyPI: sentence-transformers
- plotly/plotly.py 19K
PyPI: plotly
- pallets/click 18K
PyPI: click
-
PyPI: networkx
- apache/arrow 17K
PyPI: pyarrow
- ipython/ipython 17K
PyPI: ipython
- aio-libs/aiohttp 17K
PyPI: aiohttp
- encode/httpx 16K
PyPI: httpx
- scipy/scipy 15K
PyPI: scipy
-
PyPI: playwright
- sympy/sympy 15K
PyPI: sympy
- visgl/deck.gl 15K
PyPI: pydeck
-
PyPI: pytest
- mwaskom/seaborn 14K
PyPI: seaborn
-
PyPI: speedtest-cli
-
PyPI: pillow
- jupyter/notebook 13K
PyPI: notebook
-
PyPI: pyautogui
- Kludex/starlette 13K
PyPI: starlette
-
PyPI: sqlalchemy
- giampaolo/psutil 11K
PyPI: psutil
- wandb/wandb 11K
PyPI: wandb
-
PyPI: tokenizers
- numba/numba 11K
PyPI: numba
- pymupdf/PyMuPDF 11K
PyPI: pymupdf
- Kludex/uvicorn 11K
PyPI: uvicorn
-
PyPI: pdfplumber
-
PyPI: ollama
-
PyPI: prompt-toolkit
-
PyPI: wordcloud
- vega/altair 11K
PyPI: altair
- py-pdf/pypdf 10K
PyPI: pypdf
-
PyPI: accelerate
- tobymao/sqlglot 9.8K
PyPI: sqlglot
- seatgeek/fuzzywuzzy 9.2K
PyPI: fuzzywuzzy
-
PyPI: pygame
-
PyPI: google-api-python-client
-
PyPI: python-dotenv
- librosa/librosa 8.9K
PyPI: librosa
- jd/tenacity 8.8K
PyPI: tenacity
-
PyPI: youtube-transcript-api
-
PyPI: bitsandbytes
- ijl/orjson 8.3K
PyPI: orjson
- PyGithub/PyGithub 7.8K
PyPI: pygithub
-
PyPI: apscheduler
-
PyPI: kubernetes
-
PyPI: watchdog
- python-trio/trio 7.4K
PyPI: trio
-
PyPI: marshmallow
- adbar/trafilatura 7.1K
PyPI: trafilatura
- nuxt/ui 7.1K
npm: @nuxt/ui
- pry/pry 6.8K
RubyGems: pry
- madmaze/pytesseract 6.4K
PyPI: pytesseract
-
RubyGems: faraday
- python-attrs/attrs 5.9K
PyPI: attrs
-
RubyGems: concurrent-ruby
-
PyPI: python-docx
-
PyPI: websockets
-
PyPI: vadersentiment
-
PyPI: jsonschema
- vuejs/router 4.7K
npm: vue-router
- joblib/joblib 4.4K
PyPI: joblib
-
PyPI: markdown
- urllib3/urllib3 4.1K
PyPI: urllib3
-
PyPI: xlsxwriter
- pyppeteer/pyppeteer 3.9K
PyPI: pyppeteer
- PyCQA/flake8 3.8K
PyPI: flake8
- tartley/colorama 3.8K
PyPI: colorama
-
RubyGems: byebug
-
RubyGems: ruby-openai
- pallets/itsdangerous 3.1K
PyPI: itsdangerous
- lxml/lxml 3.1K
PyPI: lxml
- yaml/pyyaml 3K
PyPI: pyyaml
-
PyPI: diskcache
- tkem/cachetools 2.8K
PyPI: cachetools
- agronholm/anyio 2.6K
PyPI: anyio
- pyparsing/pyparsing 2.5K
PyPI: pyparsing
- kurtmckee/feedparser 2.5K
PyPI: feedparser
- moses-palmer/pynput 2.2K
PyPI: pynput
- Alir3z4/html2text 2.2K
PyPI: html2text
- fxn/zeitwerk 2.1K
RubyGems: zeitwerk
- pallets-eco/blinker 2.1K
PyPI: blinker
-
RubyGems: pry-byebug
-
PyPI: greenlet
-
PyPI: narwhals
-
PyPI: markdown-it-py
-
PyPI: sounddevice
- rubychan/coderay 867
RubyGems: coderay
-
PyPI: markupsafe
-
PyPI: typing-extensions
- jquast/wcwidth 472
PyPI: wcwidth
-
PyPI: uuid-utils
Used by (in the index) · 0
None.
Sources: the GitHub dependency graph of each repository, and deps.dev for the source repository of each package (checked on Nov 4, 2026). A dependency graph also names development packages. deps.dev takes most source repositories from package metadata. How the dependency graph is made
Observations
Latest Observation, Nov 12, 2026: 7,940 stars, 7,668 forks, last push Oct 31, 2026, not archived. One of 2 Observations since Nov 11, 2026.