Skip to content

Instantly share code, notes, and snippets.

View inayet's full-sized avatar
💭
Active

Inayet Hadi inayet

💭
Active
View GitHub Profile
@inayet
inayet / gen_pydantic_instance.py
Created February 14, 2024 01:07 — forked from seanchatmangpt/gen_pydantic_instance.py
Create DSPy Signatures from Pydantic Models
import ast
import logging
import inspect
from typing import Type, TypeVar
from dspy import Assert, Module, ChainOfThought, Signature, InputField, OutputField
from pydantic import BaseModel, ValidationError
logger = logging.getLogger(__name__)
logger.setLevel(logging.ERROR)
@inayet
inayet / gen_python_primitive.py
Created February 13, 2024 15:39 — forked from seanchatmangpt/gen_python_primitive.py
Create any python primitive with DSPy
import ast
from dspy import Module, OpenAI, settings, ChainOfThought, Assert
class GenPythonPrimitive(Module):
def __init__(self, primitive_type, lm=None):
if lm is None:
turbo = OpenAI(max_tokens=500)
@inayet
inayet / gen_module.py
Created February 13, 2024 15:39 — forked from seanchatmangpt/gen_module.py
A module with self-correction
import logging # Import the logging module
from dspy import Module, OpenAI, settings, ChainOfThought, Assert
logger = logging.getLogger(__name__) # Create a logger instance
logger.setLevel(logging.ERROR) # Set the logger's level to ERROR or the appropriate level
class GenModule(Module):
def __init__(self, output_key, input_keys: list[str] = None, lm=None):
if lm is None:
@inayet
inayet / gen_python_primitive.py
Created February 13, 2024 15:39 — forked from seanchatmangpt/gen_python_primitive.py
Generate a python primitive
import ast
from dspy import Assert
from rdddy.generators.gen_module import GenModule
def is_primitive_type(data_type):
primitive_types = {
int, float, str, bool, list, tuple, dict, set
import ast
import dspy
from typing import Dict, Any, Optional
lm = dspy.OpenAI(max_tokens=500)
dspy.settings.configure(lm=lm)
import inspect
from dspy import Assert
@inayet
inayet / gen_pydantic_instance.py
Created February 13, 2024 15:39 — forked from seanchatmangpt/gen_pydantic_instance.py
Convert your prompt into a pydantic instance.
import ast
import logging
import inspect
from typing import Type, TypeVar
from dspy import Assert, Module, ChainOfThought, Signature, InputField, OutputField
from pydantic import BaseModel, ValidationError
logger = logging.getLogger(__name__)
logger.setLevel(logging.ERROR)
@inayet
inayet / signature_factory.py
Created February 13, 2024 15:39 — forked from seanchatmangpt/signature_factory.py
Create Signature classes at runtime.
import dspy
from dspy import Signature
from dspy.signatures.field import InputField, OutputField
from pydantic import BaseModel, Field
from rdddy.generators.gen_pydantic_instance import GenPydanticInstance
class InputFieldModel(BaseModel):
@inayet
inayet / contact_model.py
Created February 13, 2024 15:39 — forked from seanchatmangpt/contact_model.py
Generate a pydantic class from a prompt
from datetime import datetime
from pydantic import BaseModel, Field, validator, root_validator, EmailStr, UrlStr
class ContactModel(BaseModel):
"""A Pydantic model representing a contact in the friend of a friend ontology."""
name: str = Field(default=None, title="", description="The name of the contact.", min_length=2, max_length=50)
email: EmailStr = Field(default=None, title="", description="The email address of the contact.", min_length=5, max_length=50)
phone_number: str = Field(default=None, title="", description="The phone number of the contact.", min_length=10, max_length=15)
address: str = Field(default=None, title="", description="The address of the contact.", min_length=10, max_length=100)
@inayet
inayet / VAVAILABILITYModel.py
Created February 13, 2024 15:39 — forked from seanchatmangpt/VAVAILABILITYModel.py
Just created 7 icalendar models in one function
from pydantic import BaseModel, Field, validator, root_validator, EmailStr, UrlStr
from typing import List, Optional
from datetime import datetime
class VAVAILABILITYModel(BaseModel):
"""A Pydantic model for RFC 5545 compliance."""
dtstart: datetime = Field(default=None, title="", description="The start date and time of the event.", required)
dtend: datetime = Field(default=None, title="", description="The end date and time of the event.", required)
summary: str = Field(default=None, title="", description="A brief summary or title of the event.", max_length=255)
@inayet
inayet / gen_pydantic_instance.py
Created February 13, 2024 15:39 — forked from seanchatmangpt/gen_pydantic_instance.py
Create a pydantic instance from a class
import ast
import logging
import inspect
from typing import Type, TypeVar
from dspy import Assert, Module, ChainOfThought, Signature, InputField, OutputField
from pydantic import BaseModel, ValidationError
logger = logging.getLogger(__name__)
logger.setLevel(logging.ERROR)