Skip to content

Reference

start_chain

comet_llm.start_chain(inputs: Dict[str, JSONEncodable],
    api_key: Optional[str] = None, workspace: Optional[str] = None,
    project: Optional[str] = None, metadata: Optional[Dict[str, Dict[str,
    JSONEncodable]]] = None, tags: Optional[List[str]] = None) -> None

Creates global Chain object that tracks created Spans.

Args:

  • inputs: Dict[str, JSONEncodable] (required) chain inputs.
  • workspace: str (optional) comet workspace to use for logging.
  • project: str (optional) project name to create in comet workspace.
  • tags: List[str] (optional), user-defined tags attached to a prompt call.
  • api_key: str (optional) comet API key.
  • metadata: Dict[str, Dict[str, JSONEncodable]] (optional) user-defined dictionary with additional metadata to the call.
  • tags: List[str] (optional) user-defined tags attached to the chain

end_chain

comet_llm.end_chain(outputs: Dict[str, JSONEncodable],
    metadata: Optional[Dict[str,
    JSONEncodable]] = None) -> llm_result.LLMResult

Commits global chain and logs the result to Comet.

Args:

  • outputs: Dict[str, JSONEncodable] (required) chain outputs.
  • metadata: Dict[str, Dict[str, JSONEncodable]] (optional) user-defined dictionary with additional metadata to the call. This metadata will be deep merged with the metadata passed to start_chain if it was provided.
  • tags: List[str] (optional) user-defined tags attached to the chain

Returns: LLMResult

Span

class comet_llm.Span(self, inputs: JSONEncodable, category: str, name: Optional[str] = None, metadata: Optional[Dict[str, JSONEncodable]] = None)

A single unit of Chain that has its own context. Spans can be nested, in that case inner one exist in the context of the outer(parent) one. Outer Span is considered to be a parent for an inner one.

comet_llm.Span.init

__init__(inputs: JSONEncodable, category: str, name: Optional[str] = None,
    metadata: Optional[Dict[str, JSONEncodable]] = None)

Args:

  • inputs: JSONEncodable (required), span inputs.
  • category: str (required), span category.
  • name: str (optional), span name. If not set will be generated automatically.
  • metadata: Dict[str, JSONEncodable] (optional), span metadata.

comet_llm.Span.set_outputs

set_outputs(outputs: Dict[str, JSONEncodable], metadata: Optional[Dict[str,
    JSONEncodable]] = None) -> None

Sets outputs to span object.

Args:

  • outputs: Dict[str, JSONEncodable] (required), outputs
  • metadata: Dict[str, JSONEncodable] (optional), span metadata. If metadata dictionary was passed to init method, it will be updated.

is_ready

comet_llm.is_ready() -> bool

True if comet API key is set.

init

comet_llm.init(api_key: Optional[str] = None,
    workspace: Optional[str] = None,
    project: Optional[str] = None) -> None

An easy, safe, interactive way to set and save your settings.

Will ask for your api_key if not already set. Your api_key will not be shown.

Will save the config to .comet.config file. Default location is "~/" (home) or COMET_CONFIG, if set.

Args:

  • api_key: str (optional) comet API key.
  • workspace: str (optional) comet workspace to use for logging.
  • project: str (optional) project name to create in comet workspace.

Valid settings include:

log_prompt

comet_llm.log_prompt(prompt: str, output: str,
    workspace: Optional[str] = None, project: Optional[str] = None,
    tags: Optional[List[str]] = None, api_key: Optional[str] = None,
    prompt_template: Optional[str] = None,
    prompt_template_variables: Optional[
        Dict[str, Union[str,
    bool, float, None]]
    ] = None, metadata: Optional[Dict[str, Union[str,
    bool, float, None]]] = None, timestamp: Optional[float] = None,
    duration: Optional[float] = None) -> llm_result.LLMResult

Logs a single prompt and output to Comet platform.

Args:

  • prompt: str (required) input prompt to LLM.
  • output: str (required), output from LLM.
  • workspace: str (optional) comet workspace to use for logging.
  • project: str (optional) project name to create in comet workspace.
  • tags: List[str] (optional), user-defined tags attached to a prompt call.
  • api_key: str (optional) comet API key.
  • prompt_template: str (optional) user-defined template used for creating a prompt.
  • prompt_template_variables: Dict[str, str] (optional) dictionary with data used in prompt_template to build a prompt.
  • metadata: Dict[str, Union[str, bool, float, None]] (optional) user-defined dictionary with additional metadata to the call.
  • timestamp: float (optional) timestamp of prompt call in seconds
  • duration: float (optional) duration of prompt call

Example:

log_prompt(
    prompt="Answer the question and if the question can't be answered, say \"I don't know\"\n\n---\n\nQuestion: What is your name?\nAnswer:",
    metadata={
        "input.type": "completions",
        "input.model": "text-davinci-003",
        "input.provider": "openai",
        "output.index": 0,
        "output.logprobs": None,
        "output.finish_reason": "length",
        "usage.prompt_tokens": 5,
        "usage.completion_tokens": 7,
        "usage.total_tokens": 12,
    },
    prompt_template="Answer the question and if the question can't be answered, say \"I don't know\"\n\n---\n\nQuestion: {{question}}?\nAnswer:",
    prompt_template_variables={"question": "What is your name?"},
    output=" My name is [your name].",
    duration=16.598,
)

Returns: LLMResult.

Sep. 19, 2023