Python bindings for zeta_prompt
Project description
zed-zeta-bindings
Python bindings for Zed's Zeta prompt formatting and model output parsing code.
Installation
pip install zed-zeta-bindings
Usage
import zeta_bindings as zeta
prompt_format = "Zeta2" # Or "Zeta2.1".
prompt_input = zeta.ZetaPromptInput.from_dict(request_body)
prompt = zeta.format_prompt(prompt_input, prompt_format)
stop_tokens = zeta.stop_tokens(prompt_format) or None
raw_output = await engine.predict({"prompt": prompt, "stop": stop_tokens})
parsed_output = zeta.parse_output(raw_output, prompt_format, prompt_input)
response = {
"output": parsed_output.new_editable_region,
"editable_range": {
"start": parsed_output.range_in_excerpt[0],
"end": parsed_output.range_in_excerpt[1],
},
}
prompt_format should be Zeta2 or Zeta2.1. format_prompt returns None when the prompt input exceeds the token budget for the selected format.
For more detailed type information, see crates/zeta_prompt in the Zed repository: https://github.com/zed-industries/zed/tree/main/crates/zeta_prompt.
License
zed-zeta-bindings is licensed under GPL-3.0-or-later
API
ZetaPromptInput.from_dict(data)
Builds the typed prompt input from a request dictionary. The required fields are:
cursor_pathcursor_excerptcursor_offset_in_excerptexcerpt_ranges
Optional fields include excerpt_start_row, events, related_files, active_buffer_diagnostics, and syntax_ranges.
format_prompt(prompt_input, format_str)
Formats a ZetaPromptInput into the prompt string sent to the model. format_str should be Zeta2 or Zeta2.1.
Returns None if the input does not fit within the selected format's token budget.
stop_tokens(format_str)
Returns the stop tokens for the selected prompt format. format_str should be Zeta2 or Zeta2.1.
parse_output(model_output, format_str, prompt_input)
Parses a raw model completion into a ParsedOutput. format_str should be Zeta2 or Zeta2.1.
ParsedOutput contains:
new_editable_region: the replacement text for the editable region.range_in_excerpt: the[start, end]byte range of the editable region incursor_excerpt.cursor_offset_in_new_editable_region: the cursor offset in the replacement text, when present.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file zed_zeta_bindings-1.3.1-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: zed_zeta_bindings-1.3.1-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 4.2 MB
- Tags: CPython 3.8+, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.6.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
14a58fda4df7538e0828303412d82d6a7cf67f53eae283f7254a7f9f747372ef
|
|
| MD5 |
98590b1d6f1f3998d8976a2cc7da9dc2
|
|
| BLAKE2b-256 |
0c575eb0cd302f850d0d2db676808196af7e86b27806e26f7423c1f12be0435e
|