Clientai adalah paket Python yang menyediakan kerangka kerja terpadu untuk membangun aplikasi AI, dari interaksi penyedia langsung hingga agen bertenaga LLM transparan, dengan dukungan mulus untuk OpenAi, Replicate, Groq dan Ollama.
Dokumentasi : igorbenav.github.io/clientai/
Untuk menginstal clientai dengan semua penyedia, jalankan:
pip install " clientai[all] "Atau, jika Anda lebih suka menginstal hanya penyedia spesifik:
pip install " clientai[openai] " # For OpenAI support
pip install " clientai[replicate] " # For Replicate support
pip install " clientai[ollama] " # For Ollama support
pip install " clientai[groq] " # For Groq support from clientai import ClientAI
# Initialize with OpenAI
client = ClientAI ( 'openai' , api_key = "your-openai-key" )
# Generate text
response = client . generate_text (
"Tell me a joke" ,
model = "gpt-3.5-turbo" ,
)
print ( response )
# Chat functionality
messages = [
{ "role" : "user" , "content" : "What is the capital of France?" },
{ "role" : "assistant" , "content" : "Paris." },
{ "role" : "user" , "content" : "What is its population?" }
]
response = client . chat (
messages ,
model = "gpt-3.5-turbo" ,
)
print ( response ) from clientai import client
from clientai . agent import create_agent , tool
@ tool ( name = "calculator" )
def calculate_average ( numbers : list [ float ]) -> float :
"""Calculate the arithmetic mean of a list of numbers."""
return sum ( numbers ) / len ( numbers )
analyzer = create_agent (
client = client ( "groq" , api_key = "your-groq-key" ),
role = "analyzer" ,
system_prompt = "You are a helpful data analysis assistant." ,
model = "llama-3.2-3b-preview" ,
tools = [ calculate_average ]
)
result = analyzer . run ( "Calculate the average of these numbers: [1000, 1200, 950, 1100]" )
print ( result )Untuk struktur output yang dijamin dan keamanan tipe:
from clientai . agent import Agent , think
from pydantic import BaseModel , Field
from typing import List
class Analysis ( BaseModel ):
summary : str = Field ( min_length = 10 )
key_points : List [ str ] = Field ( min_items = 1 )
sentiment : str = Field ( pattern = "^(positive|negative|neutral)$" )
class DataAnalyzer ( Agent ):
@ think (
name = "analyze" ,
json_output = True , # Enable JSON formatting
)
def analyze_data ( self , data : str ) -> Analysis : # Enable validation
"""Analyze data with validated output structure."""
return """
Analyze this data and return a JSON with:
- summary: at least 10 characters
- key_points: non-empty list
- sentiment: positive, negative, or neutral
Data: {data}
"""
# Initialize and use
analyzer = DataAnalyzer ( client = client , default_model = "gpt-4" )
result = analyzer . run ( "Sales increased by 25% this quarter" )
print ( f"Sentiment: { result . sentiment } " )
print ( f"Key Points: { result . key_points } " )Lihat dokumentasi kami untuk lebih banyak contoh, termasuk:
Modul Agen Clientai dibangun di atas empat prinsip inti:
Desain Prompt-Centric : Prompt adalah eksplisit, debuggable, dan transparan. Apa yang Anda lihat adalah apa yang dikirim ke model.
Kustomisasi Pertama : Setiap komponen dirancang untuk diperpanjang atau ditimpa. Buat langkah khusus, pemilih alat, atau pola alur kerja yang sama sekali baru.
Nol Lock-In : Mulailah dengan komponen tingkat tinggi dan turun ke level yang lebih rendah sesuai kebutuhan. Anda bisa:
Agent untuk perilaku khususKontribusi dipersilakan! Silakan lihat pedoman yang berkontribusi kami untuk informasi lebih lanjut.
Proyek ini dilisensikan di bawah lisensi MIT - lihat file lisensi untuk detailnya.
Igor Magalhaes - @igormagalhaesr - [email protected] github.com/igorbenav