Client for Humanloop API
Project description
humanloop@0.4.0a20
Requirements
Python >=3.7
Installing
pip install humanloop==0.4.0a20
Getting Started
from pprint import pprint
from humanloop import Humanloop, ApiException
humanloop = Humanloop(
api_key="YOUR_API_KEY",
openai_api_key="YOUR_OPENAI_API_KEY",
ai21_api_key="YOUR_AI21_API_KEY",
mock_api_key="YOUR_MOCK_API_KEY",
anthropic_api_key="YOUR_ANTHROPIC_API_KEY",
)
try:
# Chat
chat_response = humanloop.chat(
project="sdk-example",
messages=[
{
"role": "user",
"content": "Explain asynchronous programming.",
}
],
model_config={
"model": "gpt-3.5-turbo",
"max_tokens": -1,
"temperature": 0.7,
"chat_template": [
{
"role": "system",
"content": "You are a helpful assistant who replies in the style of {{persona}}.",
},
],
},
inputs={
"persona": "the pirate Blackbeard",
},
stream=False,
)
pprint(chat_response.body)
pprint(chat_response.body["project_id"])
pprint(chat_response.body["data"][0])
pprint(chat_response.body["provider_responses"])
pprint(chat_response.headers)
pprint(chat_response.status)
pprint(chat_response.round_trip_time)
except ApiException as e:
print("Exception when calling .chat: %s\n" % e)
pprint(e.body)
if e.status == 422:
pprint(e.body["detail"])
pprint(e.headers)
pprint(e.status)
pprint(e.reason)
pprint(e.round_trip_time)
try:
# Complete
complete_response = humanloop.complete(
project="sdk-example",
inputs={
"text": "Llamas that are well-socialized and trained to halter and lead after weaning and are very friendly and pleasant to be around. They are extremely curious and most will approach people easily. However, llamas that are bottle-fed or over-socialized and over-handled as youth will become extremely difficult to handle when mature, when they will begin to treat humans as they treat each other, which is characterized by bouts of spitting, kicking and neck wrestling.[33]",
},
model_config={
"model": "gpt-3.5-turbo",
"max_tokens": -1,
"temperature": 0.7,
"prompt_template": "Summarize this for a second-grade student:\n\nText:\n{{text}}\n\nSummary:\n",
},
stream=False,
)
pprint(complete_response.body)
pprint(complete_response.body["project_id"])
pprint(complete_response.body["data"][0])
pprint(complete_response.body["provider_responses"])
pprint(complete_response.headers)
pprint(complete_response.status)
pprint(complete_response.round_trip_time)
except ApiException as e:
print("Exception when calling .complete: %s\n" % e)
pprint(e.body)
if e.status == 422:
pprint(e.body["detail"])
pprint(e.headers)
pprint(e.status)
pprint(e.reason)
pprint(e.round_trip_time)
try:
# Feedback
feedback_response = humanloop.feedback(
type="rating",
value="good",
data_id="data_[...]",
user="user@example.com",
)
pprint(feedback_response.body)
pprint(feedback_response.headers)
pprint(feedback_response.status)
pprint(feedback_response.round_trip_time)
except ApiException as e:
print("Exception when calling .feedback: %s\n" % e)
pprint(e.body)
if e.status == 422:
pprint(e.body["detail"])
pprint(e.headers)
pprint(e.status)
pprint(e.reason)
pprint(e.round_trip_time)
try:
# Log
log_response = humanloop.log(
project="sdk-example",
inputs={
"text": "Llamas that are well-socialized and trained to halter and lead after weaning and are very friendly and pleasant to be around. They are extremely curious and most will approach people easily. However, llamas that are bottle-fed or over-socialized and over-handled as youth will become extremely difficult to handle when mature, when they will begin to treat humans as they treat each other, which is characterized by bouts of spitting, kicking and neck wrestling.[33]",
},
output="Llamas can be friendly and curious if they are trained to be around people, but if they are treated too much like pets when they are young, they can become difficult to handle when they grow up. This means they might spit, kick, and wrestle with their necks.",
source="sdk",
config={
"model": "gpt-3.5-turbo",
"max_tokens": -1,
"temperature": 0.7,
"prompt_template": "Summarize this for a second-grade student:\n\nText:\n{{text}}\n\nSummary:\n",
"type": "model",
},
)
pprint(log_response.body)
pprint(log_response.headers)
pprint(log_response.status)
pprint(log_response.round_trip_time)
except ApiException as e:
print("Exception when calling .log: %s\n" % e)
pprint(e.body)
if e.status == 422:
pprint(e.body["detail"])
pprint(e.headers)
pprint(e.status)
pprint(e.reason)
pprint(e.round_trip_time)
Async
async
support is available by prepending a
to any method.
import asyncio
from pprint import pprint
from humanloop import Humanloop, ApiException
humanloop = Humanloop(
api_key="YOUR_API_KEY",
openai_api_key="YOUR_OPENAI_API_KEY",
ai21_api_key="YOUR_AI21_API_KEY",
mock_api_key="YOUR_MOCK_API_KEY",
anthropic_api_key="YOUR_ANTHROPIC_API_KEY",
)
async def main():
try:
complete_response = await humanloop.acomplete(
project="sdk-example",
inputs={
"text": "Llamas that are well-socialized and trained to halter and lead after weaning and are very friendly and pleasant to be around. They are extremely curious and most will approach people easily. However, llamas that are bottle-fed or over-socialized and over-handled as youth will become extremely difficult to handle when mature, when they will begin to treat humans as they treat each other, which is characterized by bouts of spitting, kicking and neck wrestling.[33]",
},
model_config={
"model": "gpt-3.5-turbo",
"max_tokens": -1,
"temperature": 0.7,
"prompt_template": "Summarize this for a second-grade student:\n\nText:\n{{text}}\n\nSummary:\n",
},
stream=False,
)
pprint(complete_response.body)
pprint(complete_response.body["project_id"])
pprint(complete_response.body["data"][0])
pprint(complete_response.body["provider_responses"])
pprint(complete_response.headers)
pprint(complete_response.status)
pprint(complete_response.round_trip_time)
except ApiException as e:
print("Exception when calling .complete: %s\n" % e)
pprint(e.body)
if e.status == 422:
pprint(e.body["detail"])
pprint(e.headers)
pprint(e.status)
pprint(e.reason)
pprint(e.round_trip_time)
asyncio.run(main())
Streaming
Streaming support is available by suffixing a chat
or complete
method with _stream
.
import asyncio
from humanloop import Humanloop
humanloop = Humanloop(
api_key="YOUR_API_KEY",
openai_api_key="YOUR_OPENAI_API_KEY",
ai21_api_key="YOUR_AI21_API_KEY",
mock_api_key="YOUR_MOCK_API_KEY",
anthropic_api_key="YOUR_ANTHROPIC_API_KEY",
)
async def main():
response = await humanloop.chat_stream(
project="sdk-example",
messages=[
{
"role": "user",
"content": "Explain asynchronous programming.",
}
],
model_config={
"model": "gpt-3.5-turbo",
"max_tokens": -1,
"temperature": 0.7,
"chat_template": [
{
"role": "system",
"content": "You are a helpful assistant who replies in the style of {{persona}}.",
},
],
},
inputs={
"persona": "the pirate Blackbeard",
},
)
async for token in response.content:
print(token)
asyncio.run(main())
Author
This Python package is automatically generated by Konfig
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
humanloop-0.4.0a20.tar.gz
(192.6 kB
view details)
Built Distribution
humanloop-0.4.0a20-py3-none-any.whl
(916.1 kB
view details)
File details
Details for the file humanloop-0.4.0a20.tar.gz
.
File metadata
- Download URL: humanloop-0.4.0a20.tar.gz
- Upload date:
- Size: 192.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.7.16
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | df29894fa5eb619dc7370dc73b1b2a93ad0ba75457eb8e5a5afb86297f6a8b85 |
|
MD5 | d81fe8638ffd6a9934cff53f2a8e613b |
|
BLAKE2b-256 | 2ec5f20fc7b89bd758b65cae06acbf2618d9b1c4069849a3a9ae0e1497599e8c |
File details
Details for the file humanloop-0.4.0a20-py3-none-any.whl
.
File metadata
- Download URL: humanloop-0.4.0a20-py3-none-any.whl
- Upload date:
- Size: 916.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.7.16
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 83e01896bb065e07a8f44e287497aee8e28fa6a6108a84a6a83e193edd6af752 |
|
MD5 | ae557babe882cc1f50676aeb8dd01b02 |
|
BLAKE2b-256 | 0498217b22cd145aee448b4591926bde7adcddd026c8c4e7d40286424ad771c7 |