
Documentación : https://declarai.com
Código fuente : https://github.com/vendi-ai/declarai
Declarai convierte su código Python en tareas LLM, lo que le permite integrar fácilmente LLM en su base de código existente. Funciona con un principio simple: solo defina una función/clase de Python. Al anotar esta función con documentos y tipos de sugerencias, proporciona un conjunto de instrucciones claras para el modelo AI sin ningún esfuerzo adicional.
Una vez que haya declarado su función, Declarai compila de manera inteligente las documentos de la función y escribe sugerencias en un aviso para el modelo AI, asegurando que el modelo comprenda exactamente lo que se requiere.
Después de ejecutar la tarea, Declarai recupera la respuesta de la IA y la analiza, traduciéndola nuevamente al tipo de retorno declarado de su función Python. Esto elimina cualquier análisis manual o postprocesamiento de su parte.
Declarai lo mantiene nativo: en esencia, Declarai se trata de abrazar las prácticas nativas de Python. No necesita aprender una nueva sintaxis o adaptarse a un paradigma de codificación diferente. Simplemente escriba las funciones de Python como siempre lo ha hecho, y deje que Declarai maneje la integración de IA sin problemas.
Las tareas de IA se utilizan para cualquier lógica o transformación de negocios.
import declarai
gpt_35 = declarai . openai ( model = "gpt-3.5-turbo" )
@ gpt_35 . task
def rank_by_severity ( message : str ) -> int :
"""
Rank the severity of the provided message by it's urgency.
Urgency is ranked on a scale of 1-5, with 5 being the most urgent.
:param message: The message to rank
:return: The urgency of the message
"""
rank_by_severity ( message = "The server is down!" )
>> > 5
rank_by_severity ( message = "How was your weekend?" ))
>> > 1Los chats AI se utilizan para una conversación iterativa con el modelo AI, donde el modelo AI puede recordar mensajes y contexto anteriores.
import declarai
gpt_35 = declarai . openai ( model = "gpt-3.5-turbo" )
@ gpt_35 . experimental . chat
class SQLBot :
"""
You are a sql assistant. You help with SQL related questions
"""
sql_bot = SQLBot ()
sql_bot . send ( "When should I use a LEFT JOIN?" )
> " You should use a LEFT JOIN when you want to return all rows from ....pip install declarai export OPENAI_API_KEY= < your openai token >o pasar el token al inicializar el objeto declarante
import declarai
gpt_35 = declarai . openai ( model = "gpt-3.5-turbo" , openai_token = "<your-openai-key>" ) Elaborara funcionalidades con Fuera de IA con facilidad utilizando el decorador @task . ¡Simplemente agregue algunos tipos de pistas y un poco de documentación, y vea a Declarai hacer su magia!
import declarai
gpt_35 = declarai . openai ( model = "gpt-3.5-turbo" )
@ gpt_35 . task
def generate_poem ( title : str ) -> str :
"""
Write a 4 line poem on the provided title
"""
res = generate_poem (
title = "Declarai, the declarative AI framework for LLMs"
)
print ( res )
# Declarai, the AI framework,
# Empowers LLMs with declarative power,
# Efficiently transforming data and knowledge,
# Unlocking insights in every hour.No es el mejor poema que existe, pero ¡oye! ¡Has escrito tu primer código de IA declarativo!
Declarai tiene como objetivo promover un código limpio y legible al hacer cumplir el uso de cuerdas DOC y escribir. El código resultante es legible y fácilmente mantenible.
Primitivas de pitón
import declarai
gpt_35 = declarai . openai ( model = "gpt-3.5-turbo" )
@ gpt_35 . task
def rank_by_severity ( message : str ) -> int :
"""
Rank the severity of the provided message by it's urgency.
Urgency is ranked on a scale of 1-5, with 5 being the most urgent.
:param message: The message to rank
:return: The urgency of the message
"""
rank_by_severity ( message = "The server is down!" )
>> > 5
rank_by_severity ( message = "How was your weekend?" ))
>> > 1Listas/dicts de Python, etc.
from typing import List
import declarai
gpt_35 = declarai . openai ( model = "gpt-3.5-turbo" )
@ gpt_35 . task
def multi_value_extraction ( text : str ) -> List [ str ]:
"""
Extract the phone numbers from the provided text
:param text: content to extract phone number from
:return: The phone numbers that where identified in the input text
"""
multi_value_extraction (
text = "Hey jenny, n you can call me at 124-3435-132. n "
"you can also reach me at +43-938-243-223"
)
>> > [ '124-3435-132' , '+43-938-243-223' ]Objetos complejos de pitón
from datetime import datetime
import declarai
gpt_35 = declarai . openai ( model = "gpt-3.5-turbo" )
@ gpt_35 . task
def datetime_parser ( raw_date : str ) -> datetime :
"""
Parse the input into a valid datetime string of the format YYYY-mm-ddThh:mm:ss
:param raw_date: The provided raw date
:return: The parsed datetime output
"""
datetime_parser ( raw_date = "Janury 1st 2020" ))
>> > 2020 - 01 - 01 00 : 00 : 00 from pydantic import BaseModel
from typing import List , Dict
import declarai
class Animal ( BaseModel ):
name : str
family : str
leg_count : int
gpt_35 = declarai . openai ( model = "gpt-3.5-turbo" )
@ gpt_35 . task
def suggest_animals ( location : str ) -> Dict [ int , List [ Animal ]]:
"""
Create a list of numbers from 0 to 5
for each number, suggest a list of animals with that number of legs
:param location: The location where the animals can be found
:return: A list of animal leg count and for each count, the corresponding animals
"""
suggest_animals ( location = "jungle" )
>> > {
0 : [
Animal ( name = 'snake' , family = 'reptile' , leg_count = 0 )
],
2 : [
Animal ( name = 'monkey' , family = 'mammal' , leg_count = 2 ),
Animal ( name = 'parrot' , family = 'bird' , leg_count = 2 )
],
4 : [
Animal ( name = 'tiger' , family = 'mammal' , leg_count = 4 ),
Animal ( name = 'elephant' , family = 'mammal' , leg_count = 4 )
]
} import declarai
gpt_35 = declarai . openai ( model = "gpt-3.5-turbo" )
@ gpt_35 . task
def sentiment_classification ( string : str , examples : List [ str , int ]) -> int :
"""
Classify the sentiment of the provided string, based on the provided examples.
The sentiment is ranked on a scale of 1-5, with 5 being the most positive.
{% for example in examples %}
{{ example[0] }} // {{ example[1] }}
{% endfor %}
{{ string }} //
"""
sentiment_classification ( string = "I love this product but there are some annoying bugs" ,
examples = [[ "I love this product" , 5 ], [ "I hate this product" , 1 ]])
>> > 4 import declarai
gpt_35 = declarai . openai ( model = "gpt-3.5-turbo" )
@ gpt_35 . experimental . chat
class CalculatorBot :
"""
You a calculator bot,
given a request, you will return the result of the calculation
"""
def send ( self , message : str ) -> int : ...
calc_bot = CalculatorBot ()
calc_bot . send ( message = "1 + 1" )
>> > 2Para una introducción exhaustiva, características y mejores prácticas, explore nuestra documentación oficial y la Guía de principiantes.
¡Únete a nuestra misión para hacer que la IA declarativa sea aún mejor juntos! Echa un vistazo a nuestra guía contribuyente para comenzar.