{"id":23687,"library":"eval-protocol","title":"Eval Protocol Python SDK","description":"Official Python SDK for Eval Protocol (EP), an open protocol standardizing how developers author evals for LLM applications. Current version 0.3.29, under active development.","status":"active","version":"0.3.29","language":"python","source_language":"en","source_url":"https://github.com/fireworks-ai/eval-protocol","tags":["eval","LLM","protocol","SDK"],"install":[{"cmd":"pip install eval-protocol","lang":"bash","label":"Install from PyPI"}],"dependencies":[{"reason":"Used for data models (Episode, Result, etc.)","package":"pydantic","optional":false},{"reason":"HTTP client for API calls","package":"httpx","optional":false}],"imports":[{"wrong":"from eval_protocol import Episode","symbol":"AccountInfo","correct":"from eval_protocol import AccountInfo"},{"symbol":"EvaluateResult","correct":"from eval_protocol import EvaluateResult"},{"symbol":"EvaluationRow","correct":"from eval_protocol import EvaluationRow"}],"quickstart":{"code":"from eval_protocol import EvalClient, Episode, Result\nimport os\n\napi_key = os.environ.get('EVAL_PROTOCOL_API_KEY', '')\nclient = EvalClient(api_key=api_key)\n\neval_id = client.create_eval(name='My Quick Eval')\nepisode = Episode(input='What is 2+2?', expected='4')\nclient.log_episode(eval_id=eval_id, episode=episode)\nresult = client.run_eval(eval_id=eval_id)\nprint(result)\n","lang":"python","description":"Creates an eval, logs an episode, runs the eval, and prints the result."},"warnings":[{"fix":"Use EvalClient(api_key='your_key') instead of EvalClient('your_key').","message":"SDK version 0.3.x changed the API client initialization. Previously required positional api_key; now requires keyword argument.","severity":"breaking","affected_versions":">=0.3.0"},{"fix":"Use 'from eval_protocol import ...'.","message":"The import module is 'eval_protocol' (with underscore), not 'evalprotocol' or 'eval-protocol'. Hyphen cannot be used in Python imports.","severity":"gotcha","affected_versions":"all"},{"fix":"Always provide both 'input' and 'expected' when creating an Episode.","message":"Episode fields 'input' and 'expected' are required; omitting them causes runtime validation errors.","severity":"gotcha","affected_versions":">=0.2.0"}],"env_vars":null,"search_vec":"'0.3.29':25 'activ':27 'applic':22 'author':18 'current':23 'develop':17,28 'ep':11 'eval':1,9,19,29 'llm':21,30 'offici':5 'open':13 'protocol':2,10,14,31 'python':3,6 'sdk':4,7,32 'standard':15 'version':24","created_at":"2026-05-01T08:09:05.258956+00:00","updated_at":"2026-05-01T08:09:05.258956+00:00","problems":null,"ecosystem":"pypi","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":"0.3.30","cli_name":"eval-protocol","cli_version":"Traceback (most recent call last):","type":"library","homepage":"https://evalprotocol.com","github":"https://github.com/fireworks-ai/eval-protocol","docs":null,"changelog":null,"pypi":"https://pypi.org/project/eval-protocol/","npm":null,"openapi_spec":null,"status_page":null,"smithery":null,"categories":["llm-agents","ai-ml","testing"],"base_url":null,"auth_type":null,"provenance":{"verified_status":"passing","verified_at":"2026-07-03","last_verified":"2026-07-03","next_check":"2026-08-02","install_tag":null}}