În acest capitol, părăsim definitiv laboratoarele izolate din Cloud și trecem la infrastructura locală. Învățăm cum să proiectăm și să implementăm o infrastructură izolată folosind o mașină virtuală privată în mediul Proxmox, cum să configurăm o bază de date stabilă și cum să securizăm cheile de acces direct în sistemul de operare.

„Am testat contractul de Function Calling într-un mediu protejat și am înțeles cum comunică creierul din Cloud cu funcțiile noastre. Acum este momentul să dăm jos sandbox-ul și să ridicăm scheletul fizic al autonomiei direct pe serverul local: deschidem Proxmox și configurăm prima noastră mașină virtuală.”

Bun venit la faza de implementare a proiectului nostru. Lăsăm în urmă simulările din browser și construim un server virtual dedicat, pregătit să ruleze permanent pe hardware-ul tău privat.


🔹Strategia de Arhitectură (Design-ul Serverului Local)

Pentru a pune în practică acest proiect în mod profesionist, avem nevoie de un mediu complet separat de calculatorul tău de zi cu zi. Cea mai curată metodă este să folosim o Mașină Virtuală (sau un container izolat) în mediul Proxmox, care se va comporta ca un server independent în rețeaua ta.

În interiorul acestui server virtual, vom găzdui ambele componente ale Agentului nostru local:

  • Serverul de Bază de Date (MariaDB): Registrul nostru fizic, local, care va stoca tabelele de inventar (lumea externă pe care o va sonda Agentul).
  • Mediul de Execuție (Python 3): Unde va rula scriptul nostru autonom, fiind cel care va prelua deciziile din Cloud și va executa funcțiile asupra bazei de date locale.

🔹Pregătirea Serverului Virtual (Sistemul de Operare)

Fie că alegi să creezi o Mașină Virtuală (VM) clasică sau un container de sistem în Proxmox, vom folosi ca bază o distribuție curată de Ubuntu Server.

Odată ce serverul tău virtual a pornit, deschide terminalul (Consola) și execută următoarele comenzi pentru a actualiza pachetele sistemului și a instala uneltele de bază de care are nevoie Agentul:

# 1. Actualizăm pachetele sistemului
sudo apt update && sudo apt upgrade -y

# 2. Instalăm serverul de bază de date și mediul Python

sudo apt install mariadb-server python3 python3-pip python3-venv -y

# 3. Ne asigurăm că baza de date pornește automat cu sistemul

sudo systemctl enable --now mariadb

🔹Pregătirea Lumii Externe (Structura SQL pentru Stoc)

Pentru ca Agentul tău AI să aibă ce să verifice și să modifice, trebuie să creăm structura tabelelor în serverul local de MariaDB. În consola mașinii tale virtuale, accesează baza de date rulând următoarea comandă:

sudo mysql -u root

Odată intrat în terminalul bazei de date, rulează codul SQL de mai jos pentru a crea baza de date a depozitului, tabelul de inventar hardware și pentru a introduce primele date reale de test:

CREATE DATABASE agent_warehouse;
USE agent_warehouse;

CREATE TABLE hardware_inventory (
id INT AUTO_INCREMENT PRIMARY KEY,
component_name VARCHAR(100) NOT NULL,
specs VARCHAR(255),
stock_count INT NOT NULL,
last_update TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);

INSERT INTO hardware_inventory (component_name, specs, stock_count) VALUES
('RAM DDR3L', '8GB Kingston 1600MHz Low Voltage', 6),
('Intel NUC Mainboard', 'Replacement board for NUC 2012 i3', 2),
('SSD SATA', '500GB Crucial MX500', 12);

# Creăm un utilizator separat, pe care scriptul Python îl va folosi pentru conectarea la baza de date

CREATE USER 'agent_user'@'localhost' IDENTIFIED BY 'ParolaTaSecretaDB';
GRANT SELECT, INSERT, UPDATE, DELETE ON agent_warehouse.* TO 'agent_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;

Înlocuiește ParolaTaSecretaDB cu o parolă puternică și unică pentru acest utilizator. Această parolă este un secret și nu trebuie publicată sau introdusă în codul pe care îl distribui.

După executarea comenzii EXIT;, baza ta de date locală este configurată și își așteaptă observatorul inteligent.


🔹Securizarea Credențialelor (Variabilele de Mediu locale)

O regulă absolută în inginerie este că nu scriem niciodată parolele sau cheile API direct în clar în interiorul codului Python. Dacă arăți scriptul cuiva, securitatea îți este compromisă. În mediul de producție de pe mașina noastră virtuală, rezolvăm acest lucru salvând credențialele direct în profilul ascuns al sistemului de operare Linux.

Deschide fișierul de configurare al terminalului folosind editorul text:

nano ~/.bashrc

Mergi direct la sfârșitul fișierului și adaugă cele două linii strategice (înlocuiește valoarea cu cheia ta reală generată la Pasul 1 în Google AI Studio):

export API_KEY="AIzaSy..."
export DB_PASSWORD="ParolaTaSecretaDB"

Salvează și închide fișierul (apasă CTRL+X, apoi Y și Enter). Pentru ca sistemul să citească noile chei instantaneu, rulează: source ~/.bashrc. Acum, credențialele tale sunt în siguranță, izolate în memorie.


💡 Logica de Izolare: Conexiunea nativă Localhost Este esențial să înțelegi de ce această structură simplificată reprezintă un pilon masiv de securitate și performanță. Deoarece ambele aplicații (baza de date MariaDB și scriptul Python) rulează în interiorul aceleiași mașini virtuale, ele comunică direct prin interfața internă a sistemului numită Localhost (sau IP-ul intern 127.0.0.1). Latența de rețea este extrem de redusă, iar comunicarea este fulgerătoare. Mai mult, serverul de bază de date nu este expus în rețeaua ta de acasă (LAN) și nu are porturi deschise în router. El rămâne baricadat în interiorul mașinii virtuale, nefiind accesibil direct din rețeaua externă.

🛠️ Ce urmează în Episodul 6? Mașina noastră virtuală este pregătită în Proxmox, baza de date este populată cu stocuri reale, iar cheia de acces este ascunsă în siguranță în sistem. Cu toate acestea, serverul este în acest moment ca o fabrică goală: avem infrastructura, dar ne lipsește muncitorul.

În episodul următor, intrăm în zona de programare pură. Vom scrie scriptul real agent.py direct în interiorul mașinii virtuale. Vei învăța cum să conectezi codul Python la baza de date locală și cum să implementezi mecanismul de Function Calling prin API-ul Gemini. Vom analiza în detaliu schimbul de mesaje dintre aplicația locală și modelul AI, folosind apeluri HTTP REST directe pentru a înțelege transparent fiecare etapă a procesului. Pregătește-te, dăm viață scriptului local!

Infrastructura ta locală a fost ridicată cu succes și este securizată. Serverul virtual rulează și pune bazele primei tale rețele autonome.

Stay Free! Stay Hidden! Stay Autonomous!


⚙️ Appendix: Micro-Curs de Inginerie AI (Clarificări Tehnice)

  • Virtual Machine / Server Virtual: O emulare software a unui computer fizic care rulează un sistem de operare complet independent, utilizând o parte din resursele hardware (CPU, RAM, stocare) ale serverului gazdă.
  • Localhost (127.0.0.1): O adresă IP standard utilizată de un sistem de operare pentru a trimite pachete de date către el însuși, permițând aplicațiilor locale să comunice fără a trece prin rețeaua externă.
  • Bashrc (~/.bashrc): Un fișier de configurare ascuns din sistemele Linux care stochează setările utilizatorului și variabilele de mediu pentru sesiunile Bash.
  • MariaDB User Privileges: Mecanismul de securitate din SQL prin care se pot limita drepturile unui utilizator. În configurația noastră, utilizatorul Agentului primește acces doar la baza de date agent_warehouse, reducând impactul unei eventuale compromiteri.