Skip to main content

A client for interacting with endpoints of the FutureHouse crow service.

Project description

crow-client

A client for interacting with endpoints of the FutureHouse crow service.

Installation

uv pip install crow-client

Usage

The CrowClient provides simple functions to deploy and monitor your crow.

In the case of environments the deployment looks like this

from pathlib import Path
from crow_client import CrowClient
from crow_client.models import CrowDeploymentConfig

client = CrowClient()

crow = CrowDeploymentConfig(
    path=Path("../envs/dummy_env"),
    environment="dummy_env.env.DummyEnv",
    requires_aviary_internal=False,
    environment_variables={"SAMPLE_ENV_VAR": "sample_val"},
    agent="ldp.agent.SimpleAgent",
)

client.create_crow(crow)

# checks the status
client.get_build_status()

For functional environments we don't need to pass the file path and can pass the environment builder instead

from aviary.core import fenv
import numpy as np


def function_to_use_here(inpste: str):
    a = np.array(np.asmatrix("1 2; 3 4"))
    return inpste


@fenv.start()
def my_env(topic: str):
    """
    Here is the doc string describing the task.
    """
    a = np.array(np.asmatrix("1 2; 3 4"))
    return f"Write a sad story about {topic}", {"chosen_topic": topic}


@my_env.tool()
def print_story(story: str, state) -> None:
    """Print the story and complete the task"""
    print(story)
    print(function_to_use_here(story))
    state.reward = 1
    state.done = True


from crow_client import CrowClient
from crow_client.models import CrowDeploymentConfig, Stage
from crow_client.clients.rest_client import generate_requirements

client = CrowClient(stage=Stage.LOCAL)

crow = CrowDeploymentConfig(
    functional_environment=my_env,
    environment="my_env",
    requires_aviary_internal=False,
    environment_variables={"SAMPLE_ENV_VAR": "sample_val"},
    agent="ldp.agent.SimpleAgent",
    requirements=generate_requirements(my_env, globals()),
)

client.create_crow(crow)

This client also provides functions that let you send tasks to an existing crow:

from crow_client import CrowJob

client = CrowClient()

job_data = {"name": "your-job-name", "query": "your task"}
client.create_job(job_data)

# checks the status
client.get_job()

The CrowJobClient provides an interface for managing environment states and agent interactions in the FutureHouse crow service.

from crow_client import CrowJobClient
from crow_client.models.app import Stage

client = CrowJobClient(
    environment="your_environment_name",
    agent="your_agent_id",
    auth_token="your_auth_token",
    base_uri=Stage.DEV,
    trajectory_id=None,
)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

crow_client-0.1.dev203.tar.gz (170.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

crow_client-0.1.dev203-py3-none-any.whl (24.3 kB view details)

Uploaded Python 3

File details

Details for the file crow_client-0.1.dev203.tar.gz.

File metadata

  • Download URL: crow_client-0.1.dev203.tar.gz
  • Upload date:
  • Size: 170.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.4.29

File hashes

Hashes for crow_client-0.1.dev203.tar.gz
Algorithm Hash digest
SHA256 65aaad4e66a2894af6b396c4afa5b8bb9aebdaad2ed69dcdb0663a2dc7d213fc
MD5 9da54e43d4116ba905fe9de6cae399fd
BLAKE2b-256 0ec2cc49a56f2cb3415cd45c1cc13f6c75971e9ecad9dce0a561aa36b1ea34e8

See more details on using hashes here.

File details

Details for the file crow_client-0.1.dev203-py3-none-any.whl.

File metadata

File hashes

Hashes for crow_client-0.1.dev203-py3-none-any.whl
Algorithm Hash digest
SHA256 b128b1cc5d4cd111547fa80d8db9901d9ac5a8ab1907fc251b031889557e06cb
MD5 74dbd33733fbb029a96c5b01871ca872
BLAKE2b-256 4899f00a52be047806540eccd31fae26a7d8ca79deeec1059cf4199e221c3e1c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page