Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Az AI-ügynökök átalakítják az alkalmazások adathasználatát a nagy nyelvi modellek (LLM-ek) külső eszközökkel és adatbázisokkal való kombinálásával. Az ügynökök lehetővé teszik az összetett munkafolyamatok automatizálását, növelik az információlekérés pontosságát, és megkönnyítik az adatbázisok természetes nyelvi felületeit.
Ez a cikk bemutatja, hogyan hozhat létre intelligens AI-ügynököket, amelyek képesek az adatok keresésére és elemzésére az Azure Database for PostgreSQL-ben. Példaként egy jogi kutatási asszisztens használatával végigvezeti a beállításon, a megvalósításon és a tesztelésen.
Mik azok az AI-ügynökök?
Az AI-ügynökök túlmutatnak az egyszerű csevegőrobotokon az LLM-eket külső eszközökkel és adatbázisokkal kombinálva. Az önálló LLM-ekkel vagy a szabványos lekéréses-bővített generációs (RAG) rendszerektől eltérően az AI-ügynökök a következőt tehetik:
- Tervezés: Bontsa fel az összetett feladatokat kisebb, egymást követő lépésekre.
- Eszközök használata: API-k, kódvégrehajtás és keresési rendszerek használata információk gyűjtésére vagy műveletek végrehajtására.
- Észlelés: A különböző adatforrásokból származó bemenetek megértése és feldolgozása.
- Ne feledje: A jobb döntéshozatal érdekében tárolja és hívja vissza a korábbi interakciókat.
Ha az AI-ügynököket olyan adatbázisokhoz csatlakoztatja, mint az Azure Database for PostgreSQL, az ügynökök pontosabb, környezettudatosabb válaszokat tudnak nyújtani az adatok alapján. Az AI-ügynökök túlmutatnak az alapvető emberi beszélgetéseken, és természetes nyelven végzik el a feladatokat. Ezek a feladatok hagyományosan kódolt logikát igényelnek. Az ügynökök azonban a felhasználó által megadott környezet alapján megtervezhetik a végrehajtáshoz szükséges feladatokat.
AI-ügynökök implementálása
Az AI-ügynökök Azure Database for PostgreSQL-lel való implementálása magában foglalja a fejlett AI-képességek és a robusztus adatbázis-funkciók integrálását intelligens, környezettudatos rendszerek létrehozásához. Az olyan eszközök használatával, mint a vektorkeresés, a beágyazások és az Azure AI Foundry Agent Service, a fejlesztők olyan ügynököket hozhatnak létre, amelyek megértik a természetes nyelvi lekérdezéseket, lekérhetik a releváns adatokat, és végrehajtható megállapításokat nyújtanak.
Az alábbi szakaszok az AI-ügynökök beállításának, konfigurálásához és üzembe helyezésének lépésenkénti folyamatát ismertetik. Ez a folyamat zökkenőmentes interakciót tesz lehetővé az AI-modellek és a PostgreSQL-adatbázis között.
Keretrendszerek
A különböző keretrendszerek és eszközök megkönnyítik az AI-ügynökök fejlesztését és üzembe helyezését. Mindezek a keretrendszerek támogatják az Azure Database for PostgreSQL eszközként való használatát:
- Azure AI Foundry Agent Service
- LangChain/LangGraph
- LlamaIndex
- Szemantikus kernel
- AutoGen
- OpenAI Assistants API
Példa implementálásra
A cikk példája az Azure AI Foundry Agent Service-t használja az ügynöktervezéshez, az eszközhasználathoz és az észleléshez. Az Azure Database for PostgreSQL-t használja a vektoradatbázis és a szemantikai keresési képességek eszközeként.
Az alábbi szakaszok végigvezetik egy AI-ügynök létrehozásán, amely segít a jogi csapatoknak a releváns esetek kutatásában, hogy támogassák ügyfeleiket Washington államban. Az ügynök:
- Természetes nyelvi lekérdezéseket fogad el a jogi helyzetekkel kapcsolatban.
- Vektoros keresést használ az Azure Database for PostgreSQL-ben a releváns esetelődök megkereséséhez.
- A jogi szakemberek számára hasznos formában elemzi és összegzi az eredményeket.
Előfeltételek
Engedélyezze és konfigurálja a
azure_ai
pg_vector
bővítményeket.Modellek
gpt-4o-mini
üzembe helyezése éstext-embedding-small
.A Visual Studio Code telepítése.
Telepítse a Python-bővítményt .
Telepítse a Python 3.11.x-et.
Telepítse az Azure CLI-t (legújabb verzió).
Megjegyzés:
Szüksége van az ügynök számára létrehozott üzembe helyezett modellek kulcsára és végpontjára.
Kezdő lépések
Ebben a GitHub-adattárban minden kód és mintaadatkészlet elérhető.
1. lépés: Vektorkeresés beállítása az Azure Database for PostgreSQL-ben
Először készítse elő az adatbázist a jogi esetek adatainak tárolására és keresésére vektoros beágyazások használatával.
A környezet beállítása
MacOS és Bash használata esetén futtassa az alábbi parancsokat:
python -m venv .pg-azure-ai
source .pg-azure-ai/bin/activate
pip install -r requirements.txt
Windows és PowerShell használata esetén futtassa az alábbi parancsokat:
python -m venv .pg-azure-ai
.pg-azure-ai \Scripts\Activate.ps1
pip install -r requirements.txt
Windows használata cmd.exe
esetén futtassa az alábbi parancsokat:
python -m venv .pg-azure-ai
.pg-azure-ai \Scripts\activate.bat
pip install -r requirements.txt
Környezeti változók konfigurálása
Hozzon létre egy .env
fájlt a hitelesítő adataival:
AZURE_OPENAI_API_KEY=""
AZURE_OPENAI_ENDPOINT=""
EMBEDDING_MODEL_NAME=""
AZURE_PG_CONNECTION=""
Dokumentumok és vektorok betöltése
A Python-fájl load_data/main.py szolgál az adatok Azure Database for PostgreSQL-be való betöltésének központi belépési pontjaként. A kód feldolgozza a mintaesetekhez tartozó adatokat, beleértve a washingtoni esetekre vonatkozó információkat is.
A main.py
fájl:
- Létrehozza a szükséges bővítményeket, beállítja az OpenAI API beállításait, és kezeli az adatbázistáblákat a meglévők elvetésével, és újakat hoz létre az esetadatok tárolásához.
- Beolvassa az adatokat egy CSV-fájlból, és beszúrja egy ideiglenes táblába, majd feldolgozza és átviszi azokat a fő esettáblába.
- Új oszlopot ad hozzá az esettáblába való beágyazáshoz, és beágyazásokat hoz létre az eset véleményekhez az OpenAI API-jával. A beágyazásokat az új oszlopban tárolja. A beágyazási folyamat körülbelül 3–5 percet vesz igénybe.
Az adatbetöltési folyamat elindításához futtassa a következő parancsot a load_data
könyvtárból:
python main.py
Az alábbiak kimenete main.py
:
Extensions created successfully
OpenAI connection established successfully
The case table was created successfully
Temp cases table created successfully
Data loaded into temp_cases_data table successfully
Data loaded into cases table successfully.
Adding Embeddings will take a while, around 3-5 mins.
Embeddings added successfully All Data loaded successfully!
2. lépés: Postgres-eszköz létrehozása az ügynökhöz
Ezután konfigurálja az AI-ügynök eszközeit az adatok Postgresből való lekéréséhez. Ezután az Azure AI Foundry Agent Service SDK használatával csatlakoztassa az AI-ügynököt a Postgres-adatbázishoz.
Függvény definiálása az ügynök hívásához
Kezdje azzal, hogy definiál egy függvényt, amelyet az ügynök meghívhat. Ehhez írja le a struktúráját és a szükséges paramétereket a dokumentumfüggvényben. Az összes függvénydefiníciót egyetlen fájlba kell belefoglalni, legal_agent_tools.py. Ezután importálhatja a fájlt a fő szkriptbe.
def vector_search_cases(vector_search_query: str, start_date: datetime ="1911-01-01", end_date: datetime ="2025-12-31", limit: int = 10) -> str:
"""
Fetches the case information in Washington State for the specified query.
:param query(str): The query to fetch cases specifically in Washington.
:type query: str
:param start_date: The start date for the search defaults to "1911-01-01"
:type start_date: datetime, optional
:param end_date: The end date for the search, defaults to "2025-12-31"
:type end_date: datetime, optional
:param limit: The maximum number of cases to fetch, defaults to 10
:type limit: int, optional
:return: Cases information as a JSON string.
:rtype: str
"""
db = create_engine(CONN_STR)
query = """
SELECT id, name, opinion,
opinions_vector <=> azure_openai.create_embeddings(
'text-embedding-3-small', %s)::vector as similarity
FROM cases
WHERE decision_date BETWEEN %s AND %s
ORDER BY similarity
LIMIT %s;
"""
# Fetch case information from the database
df = pd.read_sql(query, db, params=(vector_search_query,datetime.strptime(start_date, "%Y-%m-%d"), datetime.strptime(end_date, "%Y-%m-%d"),limit))
cases_json = json.dumps(df.to_json(orient="records"))
return cases_json
3. lépés: Az AI-ügynök létrehozása és konfigurálása a Postgres használatával
Most állítsa be az AI-ügynököt, és integrálja a Postgres eszközzel. A Python-fájl src/simple_postgres_and_ai_agent.py központi belépési pontként szolgál az ügynök létrehozásához és használatához.
A simple_postgres_and_ai_agent.py
fájl:
- Inicializálja az ügynököt az Azure AI Foundry-projektben egy adott modellel.
- Hozzáadja a Postgres-eszközt az adatbázis vektorkereséséhez az ügynök inicializálása során.
- Beállít egy kommunikációs szálat. Ez a szál arra szolgál, hogy üzeneteket küldjön az ügynöknek feldolgozás céljából.
- Feldolgozza a felhasználó lekérdezését az ügynök és az eszközök használatával. Az ügynök eszközökkel megtervezheti a helyes választ. Ebben a használati esetben az ügynök meghívja a Postgres eszközt a függvény aláírása és a docstring alapján, hogy vektorkeresést hajtsunk végre, és lekérje a vonatkozó adatokat a kérdés megválaszolásához.
- Megjeleníti az ügynök válaszát a felhasználó lekérdezésére.
A projekt kapcsolati sztringjének megkeresése az Azure AI Foundryben
Az Azure AI Foundry-projektben a projekt kapcsolati sztringjét a projekt áttekintési oldalán találja. Ezzel a sztringgel csatlakoztathatja a projektet az Azure AI Foundry Agent Service SDK-hoz. Adja hozzá ezt a sztringet a .env
fájlhoz.
A kapcsolat beállítása
Adja hozzá ezeket a változókat a .env
fájlhoz a gyökérkönyvtárban:
PROJECT_CONNECTION_STRING=" "
MODEL_DEPLOYMENT_NAME="gpt-4o-mini"
AZURE_TRACING_GEN_AI_CONTENT_RECORDING_ENABLED="true"
### Create the agent with tool access
We created the agent in the Azure AI Foundry project and added the Postgres tools needed to query the database. The code snippet below is an excerpt from the file [simple_postgres_and_ai_agent.py](https://github.com/Azure-Samples/postgres-agents/blob/main/src/simple_postgres_and_ai_agent.py).
# Create an Azure AI Foundry client
project_client = AIProjectClient.from_connection_string(
credential=DefaultAzureCredential(),
conn_str=os.environ["PROJECT_CONNECTION_STRING"],
)
# Initialize the agent toolset with user functions
functions = FunctionTool(user_functions)
toolset = ToolSet()
toolset.add(functions)
agent = project_client.agents.create_agent(
model= os.environ["MODEL_DEPLOYMENT_NAME"],
name="legal-cases-agent",
instructions= "You are a helpful legal assistant who can retrieve information about legal cases.",
toolset=toolset
)
Kommunikációs szál létrehozása
Ez a kódrészlet bemutatja, hogyan hozhat létre ügynökszálat és -üzenetet, amelyet az ügynök futtatáskor feldolgoz:
# Create a thread for communication
thread = project_client.agents.create_thread()
# Create a message to thread
message = project_client.agents.create_message(
thread_id=thread.id,
role="user",
content="Water leaking into the apartment from the floor above. What are the prominent legal precedents in Washington regarding this problem in the last 10 years?"
)
A kérés feldolgozása
A következő kódrészlet létrehoz egy futtatási lehetőséget az ügynök számára az üzenet feldolgozásához, és a megfelelő eszközökkel biztosítja a legjobb eredményt.
Az eszközök használatával az ügynök meghívhatja a Postgres-t és a vektorkeresést a "Víz szivárog a lakásba a fenti padlóról" lekérdezésen, hogy lekérje azokat az adatokat, amelyekre a kérdés legjobb megválaszolásához szüksége van.
from pprint import pprint
# Create and process an agent run in the thread with tools
run = project_client.agents.create_and_process_run(
thread_id=thread.id,
agent_id=agent.id
)
# Fetch and log all messages
messages = project_client.agents.list_messages(thread_id=thread.id)
pprint(messages['data'][0]['content'][0]['text']['value'])
Futtassa az ügynököt
Az ügynök futtatásához futtassa a következő parancsot a src
könyvtárból:
python simple_postgres_and_ai_agent.py
Az ügynök hasonló eredményt hoz létre az Azure Database for PostgreSQL eszközzel a Postgres-adatbázisban mentett esetadatok eléréséhez.
Íme egy kódrészlet az ügynök kimenetéből:
1. Pham v. Corbett
Citation: Pham v. Corbett, No. 4237124
Summary: This case involved tenants who counterclaimed against their landlord for relocation assistance and breached the implied warranty of habitability due to severe maintenance issues, including water and sewage leaks. The trial court held that the landlord had breached the implied warranty and awarded damages to the tenants.
2. Hoover v. Warner
Citation: Hoover v. Warner, No. 6779281
Summary: The Warners appealed a ruling finding them liable for negligence and nuisance after their road grading project caused water drainage issues affecting Hoover's property. The trial court found substantial evidence supporting the claim that the Warners' actions impeded the natural water flow and damaged Hoover's property.
4. lépés: Teszt és hibakeresés az ügynök játszóterével
Miután az Azure AI Foundry Agent Service SDK-val futtatta az ügynököt, az ügynök a projektjében kerül tárolásra. Kísérletezhet az ügynökkel az ügynök játszótéren:
Az Azure AI Foundryben lépjen az Ügynökök szakaszra.
Keresse meg az ügynököt a listában, és válassza ki a megnyitásához.
A játszótéri felülettel tesztelhet különböző jogi lekérdezéseket.
Tesztelje a lekérdezést: "Víz szivárog a lakásba a fenti emeletről. Melyek a kiemelkedő jogi precedensek Washingtonban?" Az ügynök kiválasztja a megfelelő eszközt, és megkérdezi a lekérdezés várt kimenetét. Használja sample_vector_search_cases_output.json mintakimenetként.
5. lépés: Hibakeresés az Azure AI Foundry nyomkövetésével
Amikor az Azure AI Foundry Agent Service SDK-val fejleszti az ügynököt, nyomkövetéssel hibakeresést végezhet. A nyomkövetés lehetővé teszi az olyan eszközök hívásainak hibakeresését, mint a Postgres, és megtekintheti, hogy az ügynök hogyan vezényeli az egyes feladatokat.
Az Azure AI Foundryben lépjen a Nyomkövetés elemre.
Új Application Insights-erőforrás létrehozásához válassza az Új létrehozása lehetőséget. Meglévő erőforrás csatlakoztatásához válasszon egyet az Application Insights erőforrásnév mezőjében, majd válassza a Csatlakozás lehetőséget.
Tekintse meg az ügynök műveleteinek részletes nyomkövetését.
További információ arról, hogyan állíthat be nyomkövetést az AI-ügynökkel és a Postgres-lel a GitHub advanced_postgres_and_ai_agent_with_tracing.py fájljában.
Kapcsolódó tartalom
- Azure Database for PostgreSQL-integrációk AI-alkalmazásokhoz
- LangChain használata az Azure PostgreSQL adatbázisával
- Vektoros beágyazások létrehozása az Azure OpenAI-val az Azure Database for PostgreSQL-ben
- Azure AI-bővítmény az Azure Database for PostgreSQL-ben
- Szemantikai keresés létrehozása az Azure Database for PostgreSQL és az Azure OpenAI használatával
- A pgvector engedélyezése és használata az Azure Database for PostgreSQL-ben