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 = "V0318SeedMultiRegions" # Zeta2.1 prompt format
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],
},
}
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
Functions that accept a format_str parameter are parameterized on the prompt format. Refer to the following table for the prompt format to use:
| Zeta Version | Prompt Format String |
|---|---|
| Zeta2 | V0211SeedCoder |
| Zeta2.1 | V0318SeedMultiRegions |
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.
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.
parse_output(model_output, format_str, prompt_input)
Parses a raw model completion into a ParsedOutput.
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.2-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: zed_zeta_bindings-1.3.2-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 |
b075bcb0e5a67a8777756ff72edacf7a9460b32188f23b04cfb382d703232f0b
|
|
| MD5 |
333dab195f8a0ad5c76abe5397356ce0
|
|
| BLAKE2b-256 |
fc9ffc5cdba84fb60bf75f268eabcc8243c19889541c2cd8c1a6a72f0916328b
|