Spaces:
Sleeping
Sleeping
# -*- coding: utf-8 -*- | |
# Imports | |
import asyncio | |
import os | |
import openai | |
from typing import List, Optional | |
from pydantic import BaseModel, Field | |
from langchain.chains.openai_functions.extraction import create_extraction_chain_pydantic | |
from langchain.chat_models import ChatOpenAI | |
# from langchain.prompts import ChatPromptTemplate | |
from langchain.pydantic_v1 import BaseModel | |
# from langchain.utils.openai_functions import convert_pydantic_to_openai_function | |
from dotenv import load_dotenv | |
load_dotenv() | |
openai.api_key = os.environ['OPENAI_API_KEY'] | |
# App | |
# Pydantic is an easy way to define a schema | |
class Person(BaseModel): | |
"""Information about people to extract.""" | |
name: str | |
age: Optional[int] | |
# Main function to extract information | |
def extract_information(): | |
# Make sure to use a recent model that supports tools | |
llm = ChatOpenAI(model="gpt-3.5-turbo-1106") | |
return create_extraction_chain_pydantic(Person, llm) |