Maxim Python Library
Project description
Maxim SDK
This is Python SDK for enabling Maxim observability. Maxim is an enterprise grade evaluation and observability platform.
How to integrate
Install
pip install maxim-py
Initialize Maxim logger
from maxim.maxim import Maxim
maxim = Maxim(Config(apiKey=apiKey))
Start sending traces
from maxim.logger.logger import LoggerConfig
# Initializing logger
logger = maxim.logger(LoggerConfig(id="log-repository-id"))
# Initializing a new trace
trace = logger.trace(TraceConfig(id="trace-id",name="trace-name",tags={"key":"value"}))
# Creating the generation
generation = trace.generation(GenerationConfig(id=str(uuid4()), model="text-davinci-002", provider="azure", model_parameters={"temperature": 0.7, "max_tokens": 100}))
# Making LLM call
completion = self.client.completions.create(
model="text-davinci-002",
prompt="Translate the following English text to French: 'Hello, how are you?'",
max_tokens=100,
temperature=0.7
)
# Updating generation
generation.result(completion)
# Ending trace
trace.end()
Integrations with other frameworks
Langchain
We have built in Langchain tracer support
logger = self.maxim.logger(LoggerConfig(id=repoId))
trace_id = str(uuid4())
trace = logger.trace(TraceConfig(
id=trace_id, name="pre-defined-trace"))
model = OpenAI(callbacks=[MaximLangchainTracer(logger)],api_key=openAIKey)
messages = [
(
"system",
"You are a helpful assistant that translates English to French. Translate the user sentence.",
),
("human", "I love programming."),
]
model.invoke(messages, config={
"metadata": {
"maxim": {
"trace_id": trace_id,
"generation_name": "get-answer",
"generation_tags": {
"test": "123"
}
}
}
})
trace.event(id=str(uuid4()), name="test event")
trace.end()
Version changelog
v1.5.1
- Fix - Adds Python 3.9 compatibility
v1.5.0
- Improvement - Updates connection pool to use session that enforces re-connects before making API calls.
v1.4.5
- Improvement - Adds backoff retries to failed REST calls.
v1.4.4
- Improvement - langchain becomes optional dependency
v1.4.3
- Fix - connection pooling for network calls.
- Fix - connection close issue.
v1.4.2 (🚧 Yanked)
- Fix - connection close issue
v1.4.1
- Adds validation for provider in generation
v1.4.0
- Now generation.result accepts
- OpenAI chat completion object
- Azure OpenAI chat completion object
- Langchain LLMResult, AIMessage object
v1.3.4
- Fixes message_parser
v1.3.2
- Fixes utility function for langchain to parse AIMessage into Maxim logger completion result
v1.3.1
- Adds tool call parsing support for Langchain tracer
v1.3.0
- Adds support for ChatCompletion in generations
- Adds type safety for retrieval results
v1.2.7
- Bug fix where input sent with trace.config was getting overridden with None
v1.2.6
- Adds
trace.set_input
andtrace.set_output
methods to control what to show in logs dashboard
v1.2.5
- Removes one no_op command while creating spans
- Minor bug fixes
v1.2.1
- Fixed MaximLangchainTracer error logging flow.
v1.2.0
- Adds langchain support
- Adds local parsers to validate payloads on client side
v1.1.0
- Minor bug fixes around log writer cleanup
v1.0.0
- Public release
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
maxim_py-1.5.1.tar.gz
(27.6 kB
view details)
Built Distribution
maxim_py-1.5.1-py3-none-any.whl
(35.6 kB
view details)
File details
Details for the file maxim_py-1.5.1.tar.gz
.
File metadata
- Download URL: maxim_py-1.5.1.tar.gz
- Upload date:
- Size: 27.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.9.20
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 98ae645d3bcb0418c6623f0679daa707dfbf4d18f21fa88cccc81a03c607fdcc |
|
MD5 | d269675cc25c41f50194de908f85569e |
|
BLAKE2b-256 | 518008e579bfe1ef4e8acc85bbf33eff9f9275357fd2f0b67a67b08b52a455c2 |
File details
Details for the file maxim_py-1.5.1-py3-none-any.whl
.
File metadata
- Download URL: maxim_py-1.5.1-py3-none-any.whl
- Upload date:
- Size: 35.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.9.20
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2abacdba698a33ea25270127e3729ed279d4479ac6498a7f3be02ef09a751991 |
|
MD5 | b6afad330977771750042113cfd590d5 |
|
BLAKE2b-256 | 1926c90a22330ad1e39e891de40be554a44913f8598ce6e3cb4fe278c823db66 |