OpenAI Function Calling
  • AI Chat
  • Code
  • Report
  • Beta
    Spinner

    Using OpenAI without Function Calling

    pip install --upgrade openai -q
    import os
    from openai import OpenAI
    
    client = OpenAI(
      api_key=os.environ['OPENAI_API_KEY'],
    )
    student_1_description="David Nguyen is a sophomore majoring in computer science at Stanford University. He is Asian American and has a 3.8 GPA. David is known for his programming skills and is an active member of the university's Robotics Club. He hopes to pursue a career in artificial intelligence after graduating."
    # A simple prompt to extract information from "student_description" in a JSON format.
    prompt_1 = f'''
    Please extract the following information from the given text and return it as a JSON object:
    
    name
    major
    school
    grades
    club
    
    This is the body of text to extract the information from:
    {student_1_description}
    '''
    # Generating response back from gpt-3.5-turbo
    openai_response = client.chat.completions.create(
        model = 'gpt-3.5-turbo',
        messages = [{'role': 'user', 'content': prompt_1}]
    )
    openai_response.choices[0].message.content
    import json
    
    # Loading the response as a JSON object
    json_response = json.loads(openai_response.choices[0].message.content)
    json_response
    student_2_description="Ravi Patel is a sophomore majoring in computer science at the University of Michigan. He is South Asian Indian American and has a 3.7 GPA. Ravi is an active member of the university's Chess Club and the South Asian Student Association. He hopes to pursue a career in software engineering after graduating."
    # A simple prompt to extract information from "student_description" in a JSON format.
    prompt_2 = f'''
    Please extract the following information from the given text and return it as a JSON object:
    
    name
    major
    school
    grades
    club
    
    This is the body of text to extract the information from:
    {student_2_description}
    '''
    import time
    time.sleep(60)
    # Generating response back from gpt-3.5-turbo
    openai_response = client.chat.completions.create(
        model = 'gpt-3.5-turbo',
        messages = [{'role': 'user', 'content': prompt_2}]
    )
    
    # Loading the response as a JSON object
    json_response = json.loads(openai_response.choices[0].message.content)
    json_response

    OpenAI Function Calling Example

    student_custom_functions = [
        {
            'name': 'extract_student_info',
            'description': 'Get the student information from the body of the input text',
            'parameters': {
                'type': 'object',
                'properties': {
                    'name': {
                        'type': 'string',
                        'description': 'Name of the person'
                    },
                    'major': {
                        'type': 'string',
                        'description': 'Major subject.'
                    },
                    'school': {
                        'type': 'string',
                        'description': 'The university name.'
                    },
                    'grades': {
                        'type': 'integer',
                        'description': 'GPA of the student.'
                    },
                    'club': {
                        'type': 'string',
                        'description': 'School club for extracurricular activities. '
                    }
                    
                }
            }
        }
    ]
    student_description = [student_1_description,student_2_description]
    for i in student_description:
        response = client.chat.completions.create(
            model = 'gpt-3.5-turbo',
            messages = [{'role': 'user', 'content': i}],
            functions = student_custom_functions,
            function_call = 'auto'
        )
    
        # Loading the response as a JSON object
        json_response = json.loads(response.choices[0].message.function_call.arguments)
        print(json_response)