�
Fm�h_V � � � d dl Z d dlZd dlZd dlmZmZmZ d dlZd dlZd dl Z d dl
Z
dZn# e$ r dZdZ
Y nw xY wd dl
mZ d dlmZ d dlmZ ej e� � Z G d� d � � Zd
� Zedk r e� � dS dS )� N)�Dict�Any�OptionalTF)�AIPortfolioDoctor)�AIStrategySommelier)�AIChatAssistantc �8 � e Zd ZdZd&dedefd�Zdedeeef d eeef fd
�Zd'deded efd
�Z d(deded eeef fd�Z
d)dededed eeef fd�Zdeeef d efd�Z
ded eeef fd�Zdeeef dedeeef d efd�Zdededeeef d efd�Zdededeeef d efd�Zdededeeef d efd�Zdededeeef d efd�Zdeeef d eeef fd �Zd!ed eeef fd"�Zd*ded$efd%�ZdS )+�DeFiAIAgentz@AI Agent that can interact with DeFi MCP Server using Comput3 AI�http://localhost:5000N�mcp_server_url�api_keyc �� � || _ || _ t j � � | _ | j r&| j j � d| j i� � t j dd� � | _ t j dd� � | _
t j dd� � | _ t j dd� � | _ t j d d� � | _
t | j � � | _ t! | j � � | _ t% | j � � | _ d
| _ d| _ d| _ t. � d
|� �� � t. � d| j
� �� � d S )Nz X-API-Key�OPENAI_API_KEY�
c3_api_key�OPENAI_API_URLzhttps://api.comput3.ai/v1�SMALL_OPENAI_MODELz
llama3:70b�MEDIUM_OPENAI_MODEL�LARGE_OPENAI_MODEL�333333�?g�������?g�������?z+DeFi AI Agent initialized with MCP server: zUsing Comput3 AI endpoint: )r r
�requests�Session�session�headers�update�os�getenv�openai_api_key�openai_api_url�small_model�medium_model�large_modelr �portfolio_doctorr �strategy_sommelierr �chat_assistant�risk_tolerance�max_position_size�
target_apy�logger�info)�selfr r
s �"/home/runner/workspace/ai_agent.py�__init__zDeFiAIAgent.__init__ sK � �,�������'�)�)����<� E��L� �'�'��d�l�(C�D�D�D� !�i�(8�,�G�G��� �i�(8�:U�V�V����9�%9�<�H�H����I�&;�\�J�J����9�%9�<�H�H��� !2�$�2E� F� F���"5�d�6I�"J�"J���-�d�.A�B�B��� "���!$���������R�.�R�R�S�S�S����G�$�2E�G�G�H�H�H�H�H� �method�params�returnc �Z � d||t j dd� � d�} | j � | j � d�|�� � }|� � � |� � � S # t $ r8}t � d|� �� � dt |� � icY d }~S d }~ww xY w)
z)Make a JSON-RPC request to the MCP serverz2.0� i'