Python para aplicações com IA
Antes de adicionar ferramentas ao assistente, vamos fortalecer algumas habilidades de programação que serão necessárias nos próximos laboratórios.
Objetivos
Esta não é uma revisão completa da linguagem. O foco está nas construções que aparecem em aplicações de IA.
Como estudar com o notebook
Cada etapa segue quatro ações:
Leia → Preveja → Execute → Altere
- Leia: identifique as variáveis e operações presentes no código.
- Preveja: tente imaginar o resultado antes de executar.
- Execute: confira a saída produzida pelo Python.
- Altere: modifique um valor ou uma regra e observe o efeito.
Quando encontrar uma seção Sua vez, tente escrever o código antes de consultar a solução apresentada na etapa seguinte.
O catálogo de livros
Começaremos representando cada livro com um dicionário:
livro = {
"id": 1,
"titulo": "Eu, Robô",
"autor": "Isaac Asimov",
"categoria": "ficcao",
"disponivel": True,
}
Vários livros serão armazenados em uma lista. Ao longo da aula, você criará funções para cadastrar, consultar e listar livros disponíveis.
Funções e fluxo de dados
Uma função recebe dados, executa uma responsabilidade e pode devolver um resultado:
argumentos → função → resultado
Por exemplo:
resultado = consultar_livro(1)
Essa separação será importante no próximo laboratório, quando o modelo poderá sugerir o nome de uma função e seus argumentos.
Orientação a objetos
Depois de trabalhar com dicionários, o mesmo livro será representado por uma classe. Você verá apenas os fundamentos necessários:
- classe e objeto;
__init__eself;- atributos;
- um método simples;
- herança no nível necessário para compreender
BaseModel.
Conceitos avançados de orientação a objetos não fazem parte desta aula.
Validação com Pydantic
Type hints como str, int e bool ajudam a documentar o tipo esperado, mas o Python não valida todos esses dados automaticamente durante a execução.
O Pydantic permite definir um modelo com campos e restrições:
class LivroValidado(BaseModel):
id_livro: int = Field(gt=0)
titulo: str = Field(min_length=2)
Ao criar um objeto, a biblioteca valida os valores. Se algum deles não atender às regras, será gerado um ValidationError que a aplicação poderá tratar.
Python e JSON
Um dicionário Python e um objeto JSON são parecidos, mas não são a mesma coisa:
| Python | JSON |
|---|---|
dict |
objeto |
list |
array |
True / False |
true / false |
None |
null |
O módulo json realiza a conversão entre essas representações.
Miniaplicação final
Ao final, o programa receberá uma solicitação estruturada:
{
"nome": "consultar_livro",
"argumentos": {"id_livro": 1},
}
A aplicação irá:
- verificar o nome da operação;
- validar os argumentos;
- executar apenas uma função conhecida;
- produzir um resultado;
- converter esse resultado para JSON.
Esse fluxo será retomado no Lab 3. A diferença é que o nome da função e os argumentos poderão ser sugeridos pelo llm.