
Documentation : https://declarai.com
Code source : https://github.com/ventidi-ai/declarai
Declarai transforme votre code Python en tâches LLM, vous permettant d'intégrer facilement LLM dans votre base de code existante. Il fonctionne sur un principe simple: définissez simplement une fonction / classe Python. En annotant cette fonction avec des docstrings et des indices de type, vous fournissez un ensemble d'instructions clair pour le modèle AI sans aucun effort supplémentaire.
Une fois que vous avez déclaré votre fonction, Declarai compile intelligemment les docstrings de la fonction et le type indique dans une invite pour le modèle d'IA, garantissant que le modèle comprend exactement ce qui est requis.
Après avoir exécuté la tâche, Declarai récupère la réponse de l'IA et l'analyse, la traduisant dans le type de retour déclaré de votre fonction Python. Cela élimine tout analyse manuelle ou post-traitement de votre part.
Declarai le garde natif: à la base, Declarai consiste à adopter des pratiques de python indigènes. Vous n'avez pas besoin d'apprendre une nouvelle syntaxe ou de vous adapter à un paradigme de codage différent. Écrivez simplement les fonctions Python comme vous l'avez toujours fait et laissez Declarai gérer l'intégration AI de manière transparente.
Les tâches AI sont utilisées pour toute logique ou transformation commerciale.
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?" ))
>> > 1Les chats d'IA sont utilisés pour une conversation itérative avec le modèle AI, où le modèle d'IA peut se souvenir des messages et du contexte précédents.
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 >ou passer le jeton lors de l'initialisation de l'objet Declarai
import declarai
gpt_35 = declarai . openai ( model = "gpt-3.5-turbo" , openai_token = "<your-openai-key>" ) Crégure facilement les fonctionnalités alimentées par Ai en utilisant le décorateur @task . Il suffit d'ajouter quelques indices de type et un peu de documentation, et regarder Declarai faire sa magie!
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.Pas le meilleur poème là-bas, mais bon! Vous avez écrit votre premier code AI déclaratif!
Declarai vise à promouvoir le code propre et lisible en appliquant l'utilisation de cordes de document et de frappe. Le code résultant est lisible et facilement maintenable.
Primitives python
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?" ))
>> > 1Python Listes / dicts, 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' ]Objets complexes Python
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" )
>> > 2Pour une introduction approfondie, des fonctionnalités et des meilleures pratiques, explorez notre documentation officielle et notre guide débutant.
Rejoignez notre mission pour rendre les IA déclaratives encore mieux ensemble! Consultez notre guide de contribution pour commencer.