LLM Python/CLI tool adds support for embeddings
There's a lot of stuff in this release.Don't miss the new llm-cluster plugin, which can both calculate clusters from embeddings and use another LLM call to generate a name for each cluster: https://github.com/simonw/llm-clusterExample usage:Fetch all issues, embed them and store the embeddings and content in SQLite:    paginate-json 'https://api.github.com/repos/simonw/llm/issues?state=all&filter=all' \
      | jq '[.[] | {id: .id, title: .title}]' \
      | llm embed-multi llm-issues - \
        --database issues.db \
        --model sentence-transformers/all-MiniLM-L6-v2 \
        --store

Group those in 10 clusters and generate a summary for each one using a call to GPT-4:    llm cluster llm-issues --database issues.db 10 --summary --model gpt-4