Utilities for Alana, and maybe you too. Mostly geared toward LLM-heavy workflows.
Project description
🎵 Note: I have been making new releases frequently. Make sure your package is up-to-date!
⚠️ Warning: This library is in active early development! No guarantees are made for backward compatibility. The library is NOT production-ready.
Is this for me?
This library is mostly designed for me (hence the name), but they might be helpful for you too!
Here are some questions to ask yourself when considering whether to use this library:
- Do you interact with LLMs? (Currently, only Anthropic LLMs are supported).
- Do you value conciseness?
- Are you writing non-production prototype code, where 1, occassional bugs and behavioral changes are acceptable, and 2, developer ergonomics are more important than performance?
- Note: This library strongly assumes this use-case! e.g.
alana.gen
actually writes to the console by default (you can disable this withloud=False
).
- Note: This library strongly assumes this use-case! e.g.
- Do the features appeal to you?
Philosophy:
- Programming is too slow! This is doubly true when you're interacting with LLMs. By building nice utilities with sane defaults, I hope to speed up my (and maybe your) workflow.
- I make trade-offs to speed up the developer experience:
- I do not try hard to anticipate future upstream API changes. I'm also ok with breaking backward compatibility to make my functions more concise and more usable.
- Usability > Principles. While I don't relish in it, I'm ok with breaking conventions designed for large production libraries if it speeds up programmers who use
alana
. The priority is to make the library intuitive and fast. - I don't try to serve every use-case.
- Simplicity is key. This library strives to be readable and straightforward.
Motivating Examples:
(I tested these, and tried to make sure my code was idiomatic in all cases. Sorry if I messed up! Please report any issues to h i ( a t ) [pip package name for this library] dot computer
.)
Continuing a list of messages using Anthropic API (adapted from Anthropic API documentation:
import anthropic
from anthropic.types import MessageParam
messages = [
MessageParam(
role="user",
content="Hello, Claude!"
),
]
output_text = anthropic.Anthropic().messages.create(
model="claude-3-opus-20240229",
max_tokens=1024,
messages=messages
).content[0].text
messages.append(
MessageParam(
role="assistant",
content=output_text
)
)
print(messages) # [{'role': 'user', 'content': 'Hello, Claude!'}, {'role': 'assistant', 'content': "Hello! It's nice to meet you. How are you doing today?"}]
Equivalent alana
code:
import alana
messages = []
alana.gen(user="Hello, Claude!", messages=messages, model="opus", max_tokens=1024)
print(messages) # [{'role': 'user', 'content': 'Hello, Claude!'}, {'role': 'assistant', 'content': "Hello! It's nice to meet you. How are you doing today?"}]
Also, equivalent alana
code thanks to defaults:
import alana
messages = []
alana.gen(user="Hello, Claude!", messages=messages)
print(messages) # [{'role': 'user', 'content': 'Hello, Claude!'}, {'role': 'assistant', 'content': "Hello! It's nice to meet you. How are you doing today?"}]
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
File details
Details for the file alana-0.0.10.tar.gz
.
File metadata
- Download URL: alana-0.0.10.tar.gz
- Upload date:
- Size: 15.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.9.19
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1ce16e6a57472f0edc90d6eab073aac1cbfe3f969883aa73414fe362ae88de97 |
|
MD5 | b94edb0f55cfc790d817a2b5af47f7df |
|
BLAKE2b-256 | d4b62f78996d5b6a20e090c797b2fe56803d22733f2a12070077f1c165549c6a |
File details
Details for the file alana-0.0.10-py3-none-any.whl
.
File metadata
- Download URL: alana-0.0.10-py3-none-any.whl
- Upload date:
- Size: 18.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.9.19
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0c81909045a57aceabf42ca2241daf567151af5421db1932401911a08ed39c09 |
|
MD5 | e8615699da626916723e773313bfee0f |
|
BLAKE2b-256 | 418e82449c41221536e887941697deb18c87ebb89500b96b1f8c038a1513ea43 |