The exception 'Must provide a pydantic class for schema when output_parser is 'pydantic'.' is caused by the inconsistent package name of BaseModel
Labels: name: auto:bug, name: area: models

### System Info

langchain version: 0.0.279

### Who can help?

@hwchase17 @agola11 

### Information

- [X] The official example notebooks/scripts
- [ ] My own modified scripts

### Related Components

- [ ] LLMs/Chat Models
- [ ] Embedding Models
- [ ] Prompts / Prompt Templates / Prompt Selectors
- [ ] Output Parsers
- [ ] Document Loaders
- [ ] Vector Stores / Retrievers
- [ ] Memory
- [ ] Agents / Agent Executors
- [ ] Tools / Toolkits
- [X] Chains
- [ ] Callbacks/Tracing
- [ ] Async

### Reproduction

The key issue causing the error is the import statement of **BaseModel**. In the official example, the package is imported as **from pydantic import BaseModel, Field**, but in the langchain source code at _langchain\chains\openai_functions\qa_with_structure.py_, it's imported as **from langchain.pydantic_v1 import BaseModel, Field**. The inconsistency between these two package names results in an error when executing create_qa_with_structure_chain().
Below is an error example.
``` python
import os
from typing import List

from langchain import PromptTemplate
from langchain.chains.openai_functions import create_qa_with_structure_chain
from langchain.chat_models import ChatOpenAI
from langchain.prompts.chat import ChatPromptTemplate, HumanMessagePromptTemplate
from langchain.schema import SystemMessage, HumanMessage
from pydantic import BaseModel, Field

os.environ["OPENAI_API_KEY"] = "xxxx"

llm = ChatOpenAI(temperature=0, model="gpt-3.5-turbo-0613")


class CustomResponseSchema(BaseModel):
    """An answer to the question being asked, with sources."""
    answer: str = Field(..., description="Answer to the question that was asked")
    countries_referenced: List[str] = Field(
        ..., description="All of the countries mentioned in the sources"
    )
    sources: List[str] = Field(
        ..., description="List of sources used to answer the question"
    )


doc_prompt = PromptTemplate(
    template="Content: {page_content}\nSource: {source}",
    input_variables=["page_content", "source"],
)

prompt_messages = [
    SystemMessage(
        content=(
            "You are a world class algorithm to answer "
            "questions in a specific format."
        )
    ),
    HumanMessage(content="Answer question using the following context"),
    HumanMessagePromptTemplate.from_template("{context}"),
    HumanMessagePromptTemplate.from_template("Question: {question}"),
    HumanMessage(
        content="Tips: Make sure to answer in the correct format. Return all of the countries mentioned in the "
                "sources in uppercase characters. "
    ),
]

chain_prompt = ChatPromptTemplate(messages=prompt_messages)

qa_chain_pydantic = create_qa_with_structure_chain(
    llm, CustomResponseSchema, output_parser="pydantic", prompt=chain_prompt
)
query = "What did he say about russia"
qa_chain_pydantic.run({"question": query, "context": query})
```

### Expected behavior

It is hoped that the package names can be standardized