agentops/docs/v1/integrations/ai21.mdx

262 lines
7.5 KiB
Plaintext

---
title: AI21
description: "Observe AI21's latest Jamba family of models with AgentOps "
---
import CodeTooltip from '/snippets/add-code-tooltip.mdx'
import EnvTooltip from '/snippets/add-env-tooltip.mdx'
AgentOps has first party support for [AI21](https://www.ai21.com) via its Python SDK. Explore development with AI21 by visiting their [docs](https://docs.ai21.com/docs).
## Steps to integrate AI21 with AgentOps
<Steps>
<Step title="Install the AgentOps SDK">
<CodeGroup>
```bash pip
pip install agentops
```
```bash poetry
poetry add agentops
```
</CodeGroup>
</Step>
<Step title="Install the AI21 SDK">
<Note>
We currently support v2.x.x of the AI21 SDK and plan to support v3.x.x in the future.
</Note>
<CodeGroup>
```bash pip
pip install "ai21<3.0.0"
```
```bash poetry
poetry add "ai21<3.0.0"
```
</CodeGroup>
</Step>
<Step title="Add AgentOps to your code">
<CodeTooltip/>
<CodeGroup>
```python python
from ai21 import AI21Client
from ai21.models.chat import ChatMessage
import agentops
# Initialize clients
agentops.init(<INSERT YOUR API KEY HERE>)
client = AI21Client(api_key="your-api-key")
# Your AI21 code here...
agentops.end_session("Success")
```
</CodeGroup>
<EnvTooltip />
<CodeGroup>
```python .env
AGENTOPS_API_KEY=<YOUR API KEY>
```
</CodeGroup>
Read more about environment variables in [Advanced Configuration](/v1/usage/advanced-configuration)
</Step>
<Step title="Run your Agent">
Execute your program and visit [app.agentops.ai/drilldown](https://app.agentops.ai/drilldown) to observe your Agent! 🕵️
<Tip>
After your run, AgentOps prints a clickable url to console linking directly to your session in the Dashboard
</Tip>
<div/>
<Frame type="glass" caption="Clickable link to session">
<img height="200" src="https://github.com/AgentOps-AI/agentops/blob/main/docs/images/external/ai21/ai21-session.png?raw=true" />
</Frame>
</Step>
</Steps>
## Full Examples
<CodeGroup>
```python sync
from ai21 import AI21Client
from ai21.models.chat import ChatMessage
import agentops
agentops.init(<INSERT YOUR API KEY HERE>)
client = AI21Client(api_key="your-api-key")
messages = [
ChatMessage(
content="You are a world renowned poet in the style of Edgar Allan Poe.",
role="system",
),
ChatMessage(
content="Write me a short poem about the AI agents co-existing within the human brain.",
role="user",
),
]
response = client.chat.completions.create(
messages=messages,
model="jamba-1.5-mini",
)
print(response.choices[0].message.content)
agentops.end_session('Success')
```
```python async
from ai21 import AsyncAI21Client
import agentops
import asyncio
async def main():
agentops.init(<INSERT YOUR API KEY HERE>)
client = AsyncAI21Client(api_key="your-api-key")
messages = [
ChatMessage(
content="You are a world renowned poet in the style of Edgar Allan Poe.",
role="system",
),
ChatMessage(
content="Write me a short poem about the AI agents co-existing within the human brain.",
role="user",
),
]
response = await client.chat.completions.create(
messages=messages,
model="jamba-1.5-mini",
)
print(response.choices[0].message.content)
agentops.end_session('Success')
asyncio.run(main())
```
</CodeGroup>
### Streaming Examples
<CodeGroup>
```python sync
from ai21 import AI21Client
from ai21.models.chat import ChatMessage
import agentops
agentops.init(<INSERT YOUR API KEY HERE>)
client = AI21Client(api_key="your-api-key")
messages = [
ChatMessage(
content="You are a world renowned poet in the style of Edgar Allan Poe.",
role="system",
),
ChatMessage(
content="Write me a short poem about the AI agents co-existing within the human brain.",
role="user",
),
]
complete_response = ""
response = client.chat.completions.create(
messages=messages,
model="jamba-1.5-mini",
stream=True,
)
for chunk in response:
complete_response += str(chunk.choices[0].delta.content)
print(complete_response)
agentops.end_session('Success')
```
```python async
from ai21 import AsyncAI21Client
import agentops
import asyncio
async def main():
agentops.init(<INSERT YOUR API KEY HERE>)
client = AsyncAI21Client(api_key="your-api-key")
messages = [
ChatMessage(
content="You are a world renowned poet in the style of Edgar Allan Poe.",
role="system",
),
ChatMessage(
content="Write me a short poem about the AI agents co-existing within the human brain.",
role="user",
),
]
complete_response = ""
response = await client.chat.completions.create(
messages=messages,
model="jamba-1.5-mini",
stream=True,
)
async for chunk in response:
complete_response += str(chunk.choices[0].delta.content)
print(complete_response)
agentops.end_session('Success')
asyncio.run(main())
```
</CodeGroup>
### Task-Specific Models
AI21 v2.x.x provides specialized models called Task Specific Models for specific tasks.
Here's an example using the contextual answers endpoint:
<CodeGroup>
```python
from ai21 import AI21Client
import agentops
agentops.init(<INSERT YOUR API KEY HERE>)
client = AI21Client(api_key="your-api-key")
CONTEXT = """
In 2020 and 2021, enormous QE — approximately $4.4 trillion, or 18%, of 2021 gross
domestic product (GDP) — and enormous fiscal stimulus (which has been and
always will be inflationary) — approximately $5 trillion, or 21%, of 2021 GDP
— stabilized markets and allowed companies to raise enormous amounts of
capital. In addition, this infusion of capital saved many small businesses and
put more than $2.5 trillion in the hands of consumers and almost $1 trillion into
state and local coffers. These actions led to a rapid decline in unemployment,
dropping from 15% to under 4% in 20 months — the magnitude and speed of which were both
unprecedented. Additionally, the economy grew 7% in 2021 despite the arrival of
the Delta and Omicron variants and the global supply chain shortages, which were
largely fueled by the dramatic upswing in consumer spending and the shift in
that spend from services to goods.
"""
response = client.answer.create(
context=CONTEXT,
question="Did the economy shrink after the Omicron variant arrived?",
)
print(response.answer)
agentops.end_session('Success')
```
</CodeGroup>
<Note>
If you want to stream the response, you can use the stream=True flag. The streaming response is handled by the AI21 SDK.
</Note>
All of these examples can be found in this [notebook](https://github.com/AgentOps-AI/agentops/blob/main/examples/ai21_examples/ai21_examples.ipynb).
<script type="module" src="/scripts/github_stars.js"></script>
<script type="module" src="/scripts/scroll-img-fadein-animation.js"></script>
<script type="module" src="/scripts/button_heartbeat_animation.js"></script>
<script type="css" src="/styles/styles.css"></script>
<script type="module" src="/scripts/adjust_api_dynamically.js"></script>