|
1 | 1 | import functools |
2 | 2 | import json |
3 | 3 | import os |
| 4 | +from typing import Dict, List |
4 | 5 |
|
5 | | -import pandas as pd |
6 | 6 | from mistralai.client import MistralClient |
7 | 7 | from mistralai.models.chat_completion import ChatMessage, Function |
8 | 8 |
|
|
15 | 15 | "payment_status": ["Paid", "Unpaid", "Paid", "Paid", "Pending"], |
16 | 16 | } |
17 | 17 |
|
18 | | -# Create DataFrame |
19 | | -df = pd.DataFrame(data) |
| 18 | +n_rows = len(data["transaction_id"]) |
20 | 19 |
|
| 20 | +def retrieve_payment_status(data: Dict[str,List], transaction_id: str) -> str: |
| 21 | + for i, r in enumerate(data["transaction_id"]): |
| 22 | + if r == transaction_id: |
| 23 | + return json.dumps({"status": data["payment_status"][i]}) |
| 24 | + else: |
| 25 | + return json.dumps({"status": "Error - transaction id not found"}) |
21 | 26 |
|
22 | | -def retrieve_payment_status(df: pd.DataFrame, transaction_id: str) -> str: |
23 | | - if transaction_id in df.transaction_id.values: |
24 | | - return json.dumps({"status": df[df.transaction_id == transaction_id].payment_status.item()}) |
25 | | - else: |
26 | | - return json.dumps({"status": "error - transaction id not found."}) |
27 | | - |
28 | | - |
29 | | -def retrieve_payment_date(df: pd.DataFrame, transaction_id: str) -> str: |
30 | | - if transaction_id in df.transaction_id.values: |
31 | | - return json.dumps({"date": df[df.transaction_id == transaction_id].payment_date.item()}) |
32 | | - else: |
33 | | - return json.dumps({"status": "error - transaction id not found."}) |
34 | | - |
| 27 | +def retrieve_payment_date(data: Dict[str, List], transaction_id: str) -> str: |
| 28 | + for i, r in enumerate(data["transaction_id"]): |
| 29 | + if r == transaction_id: |
| 30 | + return json.dumps({"date": data["payment_date"][i]}) |
| 31 | + else: |
| 32 | + return json.dumps({"status": "Error - transaction id not found"}) |
35 | 33 |
|
36 | 34 | names_to_functions = { |
37 | | - "retrieve_payment_status": functools.partial(retrieve_payment_status, df=df), |
38 | | - "retrieve_payment_date": functools.partial(retrieve_payment_date, df=df), |
| 35 | + "retrieve_payment_status": functools.partial(retrieve_payment_status, data=data), |
| 36 | + "retrieve_payment_date": functools.partial(retrieve_payment_date, data=data) |
39 | 37 | } |
40 | 38 |
|
41 | | - |
42 | 39 | tools = [ |
43 | 40 | { |
44 | 41 | "type": "function", |
@@ -66,7 +63,6 @@ def retrieve_payment_date(df: pd.DataFrame, transaction_id: str) -> str: |
66 | 63 | }, |
67 | 64 | ] |
68 | 65 |
|
69 | | - |
70 | 66 | api_key = os.environ["MISTRAL_API_KEY"] |
71 | 67 | model = "mistral-large-latest" |
72 | 68 |
|
|
0 commit comments