A package for sending data to the Reconify platform
Project description
Reconify PIP module
The Reconify module is used for sending data to the Reconify platform at www.reconify.com.
Currently the module supports processing and analyzing Chats, Completions, and Images from:
- OpenAI
- Amazon Bedrock (Amazon Titan, AI21 Jurassic, Anthropic Claude, Cohere Command, Meta LLama 2, and Stability Stable Diffusion)
- Anthropic
- Cohere
Support for additional actions and providers will be added.
Get started
The first step is to create an account at app.reconify.com.
Generate API and APP Keys
In the Reconify console, add an Application to your account. This will generate both an API_KEY and an APP_KEY which will be used in the code below to send data to Reconify.
Install the module
pip install reconify
Integrate the module with OpenAI
The following instructions are for OpenAI's Python SDK v1 or later (released in Nov 2023). For earlier versions of OpenAI's SDK, follow the legacy instructions
Import the module
from reconify import reconifyOpenAIHandler
Initialize the module
Prior to initializing the Reconify module, make sure to import the OpenaAI module.
from openai import OpenAI
openai_client = OpenAI(api_key = 'YOUR_OPENAI_KEY')
Configure the instance of Reconify passing the OpenAi instance along with the Reconify API_KEY and APP_KEY created above.
reconifyOpenAIHandler.config(openai_client,
appKey = 'Your_App_Key',
apiKey = 'Your_Api_Key'
)
This is all that is needed for a basic integration. The module takes care of sending the correct data to Reconify when you call openai_client.completions.create, openai_client.chat.completions.create, openai_client.images.generate.
Optional Config Parameters
There are additional optional parameters that can be passed in to the handler.
- debug: (default False) Enable/Disable console logging
- trackImages: (default True) Turn on/off tracking of createImage
For example:
reconifyOpenAIHandler.config(openai_client,
appKey = 'Your_App_Key',
apiKey = 'Your_Api_Key',
debug = True
)
Optional methods
You can optionally pass in a user object or session ID to be used in the analytics reporting. The session ID will be used to group interactions together in the same session transcript.
Set a user
The user JSON should include a unique userId, all the other fields are optional. Without a unique userId, each user will be treated as a new user.
reconifyOpenAIHandler.setUser ({
"userId": "ABC123",
"isAuthenticated": 1,
"firstName": "Francis",
"lastName": "Smith",
"email": "",
"phone": "",
"gender": "female"
})
Set a Session ID
The Session ID is an alphanumeric string.
reconifyOpenAIHandler.setSession('MySessionId')
Set Session Timeout
Set the session timeout in minutes to override the default
reconifyOpenAIHandler.setSessionTimeout(15)
Integrate the module with Amazon Bedrock Runtime
Import the module
from reconify import reconifyBedrockRuntimeHandler
Initialize the module
Prior to initializing the Reconify module, make sure to import the Amazon boto3 module.
import boto3
bedrock = boto3.client('bedrock-runtime')
Configure the instance of Reconify passing the Bedrock Runtime instance along with the Reconify API_KEY and APP_KEY created above.
reconifyBedrockRuntimeHandler.config(bedrock,
appKey = 'Your_App_Key',
apiKey = 'Your_Api_Key'
)
This is all that is needed for a basic integration. The module takes care of sending the correct data to Reconify when you call bedrock.invoke_model().
Response handling
When using the Reconify module, the response body from invoke_model will be converted from botocore.response.StreamingBody to JSON and saved in the response as parsedBody. See the examples below for more info.
Optional Config Parameters
There are additional optional parameters that can be passed in to the handler.
- debug: (default False) Enable/Disable console logging
- trackImages: (default True) Turn on/off tracking of createImage
For example:
reconifyBedrockRuntimeHandler.config(bedrock,
appKey = 'Your_App_Key',
apiKey = 'Your_Api_Key',
debug = True
)
Optional methods
You can optionally pass in a user object or session ID to be used in the analytics reporting. The session ID will be used to group interactions together in the same session transcript.
Set a user
The user JSON should include a unique userId, all the other fields are optional. Without a unique userId, each user will be treated as a new user.
reconifyBedrockRuntimeHandler.setUser ({
"userId": "ABC123",
"firstName": "Francis",
"lastName": "Smith"
})
Set a Session ID
The Session ID is an alphanumeric string.
reconifyBedrockRuntimeHandler.setSession('MySessionId')
Set Session Timeout
Set the session timeout in minutes to override the default
reconifyBedrockRuntimeHandler.setSessionTimeout(15)
See Examples with Amazon Bedrock Runtime
Integrate the module with Anthropic
The following instructions are for Anthropic's Python SDK.
Import the module
from reconify import reconifyAnthropicHandler
Initialize the module
Prior to initializing the Reconify module, make sure to import the Anthropic module.
from anthropic import Anthropic, HUMAN_PROMPT, AI_PROMPT
anthropic = Anthropic(api_key = 'YOUR_ANTHROPIC_KEY')
Configure the instance of Reconify passing the Anthropic instance along with the Reconify API_KEY and APP_KEY created above.
reconifyAnthropicHandler.config(anthropic,
appKey = 'Your_App_Key',
apiKey = 'Your_Api_Key'
)
This is all that is needed for a basic integration. The module takes care of sending the correct data to Reconify.
Optional Config Parameters
There are additional optional parameters that can be passed in to the handler.
- debug: (default False) Enable/Disable console logging
- trackImages: (default True) Turn on/off tracking of createImage
For example:
reconifyAnthropicHandler.config(anthropic,
appKey = 'Your_App_Key',
apiKey = 'Your_Api_Key',
debug = True
)
Optional methods
You can optionally pass in a user object or session ID to be used in the analytics reporting. The session ID will be used to group interactions together in the same session transcript.
Set a user
The user JSON should include a unique userId, all the other fields are optional. Without a unique userId, each user will be treated as a new user.
reconifyAnthropicHandler.setUser ({
"userId": "ABC123",
"firstName": "Francis",
"lastName": "Smith"
})
Set a Session ID
The Session ID is an alphanumeric string.
reconifyAnthropicHandler.setSession('MySessionId')
Set Session Timeout
Set the session timeout in minutes to override the default
reconifyAnthropicHandler.setSessionTimeout(15)
Integrate the module with Cohere
The following instructions are for Cohere's Python SDK.
Import the module
from reconify import reconifyCohereHandler
Initialize the module
Prior to initializing the Reconify module, make sure to import the Cohere module.
from cohere import Client
cohere_client = Client('YOUR_COHERE_KEY')
Configure the instance of Reconify passing the Cohere instance along with the Reconify API_KEY and APP_KEY created above.
reconifyCohereHandler.config(cohere_client,
appKey = 'Your_App_Key',
apiKey = 'Your_Api_Key'
)
This is all that is needed for a basic integration. The module takes care of sending the correct data to Reconify.
Optional Config Parameters
There are additional optional parameters that can be passed in to the handler.
- debug: (default False) Enable/Disable console logging
- trackImages: (default True) Turn on/off tracking of createImage
For example:
reconifyCohereHandler.config(cohere_client,
appKey = 'Your_App_Key',
apiKey = 'Your_Api_Key',
debug = True
)
Optional methods
You can optionally pass in a user object or session ID to be used in the analytics reporting. The session ID will be used to group interactions together in the same session transcript.
Set a user
The user JSON should include a unique userId, all the other fields are optional. Without a unique userId, each user will be treated as a new user.
reconifyCohereHandler.setUser ({
"userId": "ABC123",
"firstName": "Francis",
"lastName": "Smith"
})
Set a Session ID
The Session ID is an alphanumeric string.
reconifyCohereHandler.setSession('MySessionId')
Set Session Timeout
Set the session timeout in minutes to override the default
reconifyCohereHandler.setSessionTimeout(15)
Examples with OpenAI
Chat Example
from openai import OpenAI
from reconify import reconifyOpenAIHandler
openai_client = OpenAI(api_key = 'YOUR_OPENAI_KEY')
reconifyOpenAIHandler.config(openai_client, 'Your_App_Key', 'Your_Api_Key')
reconifyOpenAIHandler.setUser({
"userId": "12345",
"isAuthenticated": 1,
"firstName": "Jim",
"lastName": "Stand",
"gender": "male"
})
response = openai_client.chat.completions.create(
model="gpt-3.5-turbo",
messages=[
{"role": "system", "content": "You are an expert on commedians."},
{"role": "user", "content": "Tell a joke about cats"},
],
temperature=0,
)
Completion Example
from openai import OpenAI
from reconify import reconifyOpenAIHandler
openai_client = OpenAI(api_key = 'YOUR_OPENAI_KEY')
reconifyOpenAIHandler.config(openai_client, 'Your_App_Key', 'Your_Api_Key')
reconifyOpenAIHandler.setUser({
"userId": "12345",
"isAuthenticated": 1,
"firstName": "Jim",
"lastName": "Stand",
"gender": "male"
})
response = openai_client.completions.create(
model = "text-davinci-003",
prompt = "write a haiku about cats",
max_tokens = 100,
temperature = 0,
)
Image Example
from openai import OpenAI
from reconify import reconifyOpenAIHandler
openai_client = OpenAI(api_key = 'YOUR_OPENAI_KEY')
reconifyOpenAIHandler.config(openai_client, 'Your_App_Key', 'Your_Api_Key')
reconifyOpenAIHandler.setUser({
"userId": "12345",
"isAuthenticated": 1,
"firstName": "Jim",
"lastName": "Stand",
"gender": "male"
})
response = openai_client.images.generate(
model = "dall-e-3",
prompt = "a cat on the moon",
n = 1,
size = "1024x1024",
quality="standard",
response_format = "url"
)
Examples with Amazon Bedrock Runtime
Anthropic Claude example
import boto3
from reconify import reconifyBedrockRuntimeHandler
bedrock = boto3.client('bedrock-runtime')
reconifyBedrockRuntimeHandler.config(bedrock, 'Your_App_Key', 'Your_Api_Key')
reconifyOpenAIHandler.setUser({
"userId": "12345",
"firstName": "Jane",
"lastName": "Smith"
})
response = bedrock.invoke_model(
modelId = "anthropic.claude-instant-v1",
contentType = "application/json",
accept = "application/json",
body = "{\"prompt\":\"\\n\\nHuman: Tell a cat joke.\\n\\nAssistant:\",\"max_tokens_to_sample\":300,\"temperature\":1,\"top_k\":250,\"top_p\":0.999,\"stop_sequences\":[\"\\n\\nHuman:\"],\"anthropic_version\":\"bedrock-2023-05-31\"}"
)
#The botocore.response.StreamingBody object will be converted to JSON and saved in parsedBody
print(response.get("parsedBody"))
Stable Diffusion image example
import boto3
from reconify import reconifyBedrockRuntimeHandler
bedrock = boto3.client('bedrock-runtime')
reconifyBedrockRuntimeHandler.config(bedrock, 'Your_App_Key', 'Your_Api_Key')
reconifyOpenAIHandler.setUser({
"userId": "12345",
"firstName": "Jane",
"lastName": "Smith"
})
response = bedrock.invoke_model(
modelId = "stability.stable-diffusion-xl-v0",
contentType = "application/json",
accept = "application/json",
body = "{\"text_prompts\":[{\"text\":\"a cat drinking boba tea\"}],\"cfg_scale\":10,\"seed\":0,\"steps\":50}"
)
#The botocore.response.StreamingBody object will be converted to JSON and saved in parsedBody
#The following will print out the image result in JSON base64
print(response.get("parsedBody"))
Examples with Anthropic
Completions Example
from anthropic import Anthropic, HUMAN_PROMPT, AI_PROMPT
from reconify import reconifyAnthropicHandler
anthropic = Anthropic(api_key = 'YOUR_ANTHROPIC_KEY')
reconifyAnthropicHandler.config(anthropic, 'Your_App_Key', 'Your_Api_Key')
reconifyAnthropicHandler.setUser({
"userId": "12345",
"firstName": "Jim",
"lastName": "Smith",
})
response = anthropic.completions.create(
model="claude-2",
max_tokens_to_sample=300,
prompt=f"{HUMAN_PROMPT} Tell me a good cat joke{AI_PROMPT}",
)
Examples with Cohere
Chat Example
from cohere import Client
from reconify import reconifyCohereHandler
cohere_client = Client('YOUR_COHERE_KEY')
reconifyCohereHandler.config(cohere_client, 'Your_App_Key', 'Your_Api_Key')
reconifyCohereHandler.setUser({
"userId": "12345",
"firstName": "Jim",
"lastName": "Smith"
})
response = cohere_client.chat(
model="command",
message="tell me a good cat joke"
)
Generate Example
from cohere import Client
from reconify import reconifyCohereHandler
cohere_client = Client('YOUR_COHERE_KEY')
reconifyCohereHandler.config(cohere_client, 'Your_App_Key', 'Your_Api_Key')
reconifyCohereHandler.setUser({
"userId": "12345",
"firstName": "Jim",
"lastName": "Smith"
})
response = cohere_client.generate(
model="command",
prompt="write a cat haiku",
max_tokens=300
)
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
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 reconify-2.2.0.tar.gz.
File metadata
- Download URL: reconify-2.2.0.tar.gz
- Upload date:
- Size: 8.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.7.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dc2748e8bec00b0c8533f2801e05568f9e419b373ef120b89ad88f7587023ba5
|
|
| MD5 |
414668869b4b1052c2bc03c13a698b30
|
|
| BLAKE2b-256 |
139f8a10b79e6b07562f048be5074dd6071d13508a57db66a789f46b4fbca807
|
File details
Details for the file reconify-2.2.0-py3-none-any.whl.
File metadata
- Download URL: reconify-2.2.0-py3-none-any.whl
- Upload date:
- Size: 11.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.7.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bf05ddd3a0909ff4fc25ce1b0c4955a770ff5f4217f19ff124c94433352e6813
|
|
| MD5 |
2e8330a0c4d64bae95e2cd7a9bc1fa39
|
|
| BLAKE2b-256 |
2ffdbc72e6008ee1a64bba69a523f335159d992e27bdd1a52efe4ecfa1f824d8
|