mirror of
https://github.com/langchain-ai/langchain.git
synced 2026-10-16 14:49:21 +03:00
changed height in the example to a more reasonable number (from 9 feet to 6 feet)
6.5 KiB
6.5 KiB
In [1]:
from langchain.chat_models import ChatOpenAI
from langchain.chains import create_extraction_chain, create_extraction_chain_pydantic
from langchain.prompts import ChatPromptTemplateIn [2]:
llm = ChatOpenAI(temperature=0, model="gpt-3.5-turbo-0613")In [3]:
schema = {
"properties": {
"person_name": {"type": "string"},
"person_height": {"type": "integer"},
"person_hair_color": {"type": "string"},
"dog_name": {"type": "string"},
"dog_breed": {"type": "string"},
},
"required": ["person_name", "person_height"],
}In [6]:
inp = """
Alex is 5 feet tall. Claudia is 1 feet taller Alex and jumps higher than him. Claudia is a brunette and Alex is blonde.
Alex's dog Frosty is a labrador and likes to play hide and seek.
"""In [7]:
chain = create_extraction_chain(schema, llm)In [8]:
chain.run(inp)Out [8]:
[{'person_name': 'Alex',
'person_height': 5,
'person_hair_color': 'blonde',
'dog_name': 'Frosty',
'dog_breed': 'labrador'},
{'person_name': 'Claudia',
'person_height': 6,
'person_hair_color': 'brunette'}]In [9]:
from typing import Optional, List
from pydantic import BaseModel, FieldIn [10]:
class Properties(BaseModel):
person_name: str
person_height: int
person_hair_color: str
dog_breed: Optional[str]
dog_name: Optional[str]In [11]:
chain = create_extraction_chain_pydantic(pydantic_schema=Properties, llm=llm)In [12]:
inp = """
Alex is 5 feet tall. Claudia is 1 feet taller Alex and jumps higher than him. Claudia is a brunette and Alex is blonde.
Alex's dog Frosty is a labrador and likes to play hide and seek.
"""In [13]:
chain.run(inp)Out [13]:
[Properties(person_name='Alex', person_height=5, person_hair_color='blonde', dog_breed='labrador', dog_name='Frosty'), Properties(person_name='Claudia', person_height=6, person_hair_color='brunette', dog_breed=None, dog_name=None)]