{"data":{"slug":"kieranklaassen-leva","name":"leva","tagline":"LLM Evaluation Framework for Rails apps to be used with production data.","github_url":"https://github.com/kieranklaassen/leva","owner":"kieranklaassen","repo":"leva","owner_avatar_url":"https://avatars.githubusercontent.com/u/209089?v=4","primary_language":"Ruby","stars":141,"forks":7,"topics":["llm","llm-evaluation","ruby-on-rails"],"archived":false,"github_pushed_at":"2026-06-03T17:43:51+00:00","maintenance_label":"Steady","url":"https://www.graphcanon.com/tools/kieranklaassen-leva","markdown_url":"https://www.graphcanon.com/tools/kieranklaassen-leva.md","api_url":"https://www.graphcanon.com/api/graphcanon/tools/kieranklaassen-leva","graph_url":"https://www.graphcanon.com/api/graphcanon/graph?tool=kieranklaassen-leva","description":"LLM Evaluation Framework for Rails apps to be used with production data.","homepage_url":null,"license":"MIT","open_issues":4,"watchers":2,"ai_summary":null,"readme_excerpt":"## Installation\n\nAdd this line to your application's Gemfile:\n\n```ruby\ngem 'leva'\n```\n\nAnd then execute:\n\n```bash\nbundle install\n```\n\nAdd the migrations to your database:\n\n```bash\nrails leva:install:migrations\nrails db:migrate\n```\n\nMount the Leva engine in your application's routes file:\n\n```ruby\n\n---\n\n### Installation\n\nAdd the DSPy gems to your Gemfile:\n\n```ruby\ngem \"dspy\"           # Core DSPy functionality (required)\ngem \"dspy-ruby_llm\"  # RubyLLM provider adapter (required)\ngem \"dspy-gepa\"      # GEPA optimizer (optional, recommended)\ngem \"dspy-miprov2\"   # MIPROv2 optimizer (optional)\n```\n\nYou can use any DSPy provider adapter instead of `dspy-ruby_llm`, such as `dspy-openai` or `dspy-anthropic`.\n\n---\n\n## License\n\nThe gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).","github_created_at":"2024-08-13T17:41:18+00:00","created_at":"2026-07-11T12:02:24.099679+00:00","updated_at":"2026-07-11T12:02:32.818894+00:00","categories":[{"slug":"llm-frameworks","name":"LLM Frameworks","url":"https://www.graphcanon.com/categories/llm-frameworks","markdown_url":"https://www.graphcanon.com/categories/llm-frameworks.md","api_url":"https://www.graphcanon.com/api/graphcanon/categories/llm-frameworks"},{"slug":"evaluation-observability","name":"Evaluation & Observability","url":"https://www.graphcanon.com/categories/evaluation-observability","markdown_url":"https://www.graphcanon.com/categories/evaluation-observability.md","api_url":"https://www.graphcanon.com/api/graphcanon/categories/evaluation-observability"}],"tags":[{"slug":"llm","name":"llm"},{"slug":"ruby-on-rails","name":"ruby-on-rails"},{"slug":"ruby","name":"ruby"},{"slug":"llm-evaluation","name":"llm-evaluation"}],"trust":{"provenance":{"is_fork":false,"github_id":842113915,"owner_type":"User","methodology":"github_public_v1","parent_repo":null,"near_duplicate_slugs":[]},"computed_at":"2026-07-11T12:02:24.816Z","maintenance":{"label":"Steady","score":60,"methodology":"github_public_v1","releases_90d":0,"days_since_push":37,"last_release_at":"2025-12-17T16:05:00Z"},"security_summary":{"status":"no_lockfile","scanner":null,"low_count":0,"high_count":0,"last_scan_at":"2026-07-11T12:02:26.813Z","medium_count":0,"scan_profile":"none","critical_count":0}},"capability_facts":{"scan":{"source":"repo_scan","observed_at":"2026-07-11T12:02:26.541Z"},"languages":{"value":["ruby"],"source":"github.language","observed_at":"2026-07-11T12:02:26.541Z"},"license_spdx":{"value":"MIT","source":"github.license","observed_at":"2026-07-11T12:02:26.541Z"}}}}