llm_generator.cpython-311.pyc•9.37 kB
�
�M�g3 � � � d dl Z d dlZd dlmZmZ d dlmZ d dlZd dlZddl m
Z
mZmZ ddl
mZ d dlZ G d� d� � ZdS ) � N)�Dict�Optional)�Path� )�MethodCache�MethodValidator�LLMMeter)�FunctionDefinitionc �f � e Zd Zdedefd�Zdededefd�Zdededefd�Zdefd �Z dededefd
�Z
dS )�LLMMethodGenerator� cache_dir�openai_api_keyc �� � t t |� � � � | _ t � � | _ t � � | _ t j t � � | _
|t _ d S )N)
r r �cacher � validatorr �meter�logging� getLogger�__name__�logger�openai�api_key)�selfr
r s �9/Users/arjun/repos/sparkmango/mcp_server/llm_generator.py�__init__zLLMMethodGenerator.__init__ sN � � ��i���1�1��
�(�*�*����Z�Z��
��'��1�1��� (����� �function�contract_abi�returnc � � K � | j � |� � }|r|S | � ||� � � d{V ��}| j � ||� � \ }}|st d|� �� � �| j � ||� � |S )zM
Generate a method implementation, using cache if available.
Nz"Invalid implementation generated: )r �get_cached_implementation�_generate_with_llmr �validate_implementation�
ValueError�cache_implementation)r r r �cached�implementation�is_valid�errors r �generate_methodz"LLMMethodGenerator.generate_method s� � � � �
��5�5�h�?�?��� ��M� $�6�6�x��N�N�N�N�N�N�N�N�� �.�@�@��>�Z�Z���%�� K��I�%�I�I�J�J�J�
�
�'�'��.�A�A�A��r c
� �X K � | � ||� � }d}d}t |� � D �]�} t j � dd| � � � d�d|d�gd�� � � d {V ��}| j � |j j � � |j
d
j j }d|v r5|�
d� � d �
d
� � d
}n8d
|v r4|�
d
� � d �
d
� � d
}|� � � c S # t j j $ r�} ||dz
k r� d
d l}
|}|
� dt'