Das Autogen -Mittel extrahiert keine Daten aus der Postgres -Datenbank, sondern zeigt nur simulierte Ergebnisse anPython

Python-Programme
Anonymous
 Das Autogen -Mittel extrahiert keine Daten aus der Postgres -Datenbank, sondern zeigt nur simulierte Ergebnisse an

Post by Anonymous »

Ich versuche, Daten aus einer lokalen Postgres -Datenbank mit einer LLM -API zu extrahieren. Die Abfrage wird korrekt erzeugt und ich kann die Abfrage mit MS -Autogen -Wirkstoffen korrekt extrahieren. Das Problem ist, wenn es um Ausführung geht. Der ausführende Agent führt die Abfrage nicht aus. Es zeigt nur simulierte Ergebnisse. Ich habe die Ausführungsabfrage in die Funktionskarte aufgenommen. Dies ist der Code -Execiderer. < /P>

Code: Select all

    senior_data_analyst  = autogen.AssistantAgent(
name="Senior Data Analyst",
system_message=senior_data_analyst_prompt,
llm_config=llm_config,
code_execution_config=False,   # Prevents arbitrary code execution, except code in the function map.
human_input_mode="NEVER",    # asks for a human input each time a message is received.
is_termination_msg=is_termination_msg,
function_map=function_map,
)
< /code>
Die Funktionskarte lautet wie folgt: < /p>
   function_map = {
"run_sql": db.run_sql,
}
Hier ist die Funktion db.run_sql :

Code: Select all

def run_sql(self, sql) -> str:
print("In run_sql: NO ERRORS IN DB.")
self.cur.execute(sql)
columns = [desc[0] for desc in self.cur.description]
res = self.cur.fetchall()
list_of_dicts = [dict(zip(columns, row)) for row in res]
json_result = json.dumps(list_of_dicts, indent=4, default=self.datetime_handler)
return json_result
< /code>
Ich habe vor ungefähr einer Woche Autogen mit dem Befehl heruntergeladen. Ich bin mir nicht sicher, ob es sich um ein Versionsproblem handelt. < /P>
pip install autogen-agentchat~=0.2
< /code>
Ich habe versucht, meine Eingabeaufforderung zu ändern, habe aber keine Ergebnisse erzielt. Das einzige, was sich ändert, ist die Dummy -Ausgabe. Ich habe sogar versucht, etwas in der Funktion run_sql 
zu drucken.

Code: Select all

senior_data_analyst_prompt = "Senior_Data_Analyst. You follow approved plan. EXECUTE FUNCTION run_sql, show the FUNCTION EXECUTED, DISPLAY RESULTS ONLY. SEND QUERY AND Generated response to the product manager for final review."
Aber es scheint, dass die Probleme die Funktion db.run_sql () vom Agenten nicht aufgerufen werden. Der Code wird normal ohne Fehler ausgeführt. Wie kann ich diesen Agenten dazu bringen, die run_sql () aufzurufen und die abgeleitete SQL -Anweisung an sie zu übergeben?

Code: Select all

run_sql_config = {
"use_cache":False, # to run each new session from the beginning.
#"cache_seed": 42,  # to get consistent result for same input.
"config_list":config_list,
"temperature": 0,
"timeout": 120,
"functions": [
{
"name":"run_sql",
"description": "Run a SQL query against the Postgres database.",
"parameters":{
"type":"object",
"properties":{
"sql":{
"type":"string",
"description":"The SQL query to RUN."
}
},
"required":["sql"],
},
},
],
}
Ich habe auch die config_list hinzugefügt. Im Folgenden finden Sie das Ausgabeergebnis mit Dummy -Daten. Die Ausgabe ist als einzelne SQL -Abfrage, komplex, aber perfekt gültig. Ich habe mit Pgadmin geprüft. Das einzige, was Ergebnisse sind, sind völlig anders. Print () In Run_SQL wird nicht verwendet. Die ausgeführte Funktion ist eine komplexe Abfrage, die Daten aus der Tabelle stolen_vehicles im Schema von New_zealand abruft. Die Abfrage ist in vier gemeinsame Tabellenausdrücke (CTEs) unterteilt: < /p>

[*]

Code: Select all

silver_vehicles
: Dieser CTE filtert die Tabelle stolen_vehicles , um nur Fahrzeuge mit einer Farbe von 'Silber' und einem Datum im Jahr 2022 enthalten Jedes Fahrzeug. < /li>

Code: Select all

vehicle_type_count
: Dies gruppiert die silver_vehicles cte nach Fahrzeugtyp und zählt die Anzahl der Fahrzeuge in jeder Gruppe.
[*]

Code: Select all

vehicle_model_count
: Dies gruppiert die Silver_Vehicles CTE nach Fahrzeugmodell und zählt die Anzahl der Fahrzeuge in jeder Gruppe.

Code: Select all

total_vehicle_count
: Dieser CTE zählt die Gesamtzahl der Fahrzeuge in den Silver_Vehicles cte. > CTE mit dem vehiosen_type_count und Vehicle_Model_Count CTEs, um die Anzahl von Fahrzeugen für jeden Typ und jeden Modell abzurufen. Es verbindet auch das CTE Total_Vehicle_Count , um die Gesamtanzahl von Fahrzeugen abzurufen. Die Abfrage berechnet den Prozentsatz der Fahrzeuge für jeden Typ und Modell in Bezug auf die Gesamtzahl. ist eine Beispielausgabe der Abfrage in einem Tabellenformat: < /p>

< Br />
Vehicle_Type < /th>
Modell < /th>
Region < /th>
Vehikel_type_Count
vehikel_model_count
Total_Vehicle_Count
Vehikel_type_percentage
vehiumsmodel_percentage th>
< /tr>
< /thead>


Auto < /td>
Toyota corolla < /td>
Auckland < /td>
100 < /td>
50 < /td>
1000 < /td>
10.00
5.00
< /tr>

Auto < /td>
Honda Civic < /td>
Auckland < /td>
100 < /td>
30
1000
10.00
3.00
< Br />
Truck < /td>
Ford Ranger < /td>
Wellington < /td>
50 < /td>
20 < /td>
1000 < /td>
5.00
2.00 < /td>
< /tr>

Truck < /td>
Toyota Hilux < /td>
Wellington < /td>
50 < /td>
15 < /td>
1000 < /td>
5.00 /td>
1.50
< /tr>

Motorrad < /td>
yamaha Fjr < /td>
Christchurch < /td>
20 < /td>
10 < /td>
1000 < /td>
2.00
1.00
< /tr>

Motorcycle < /td>
Honda cbr < /td>
Christchurch < /td>
20 < /td>
5 5 5 5 5 5 < /td>
5 < /td>
1000 < /td>
2.00
0.50
< /tr>


Vielen Dank im Voraus.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post