Form filling chatBOT ideas

I have an existing Form entry API that adds data to a database. I can program up a ChatGPT powered chatbot that asks questions.

The idea is that instead of the user filling a form in, the information is extracted from the chat.

Basically I want ideas for a secondary prompt that would format data from the chat that can be ingested by my API. For example I could borrow the ideas of plug-ins and put a openAPI spec as context in a prompt and as the users chats with the chatbot, the chatlogs are processed by another GPT3 call that generates a JSON formatted string that is used as an input to my form API!

If anyone has better implementation ideas I’d love to hear about it.

4 Likes

Hi @t.mcgregor , I have been also working on the similar solution. Thought to reach out in case you get any progress in it. I am planning to use agents functionality for that but if you have any suggestions to add.

2 Likes

Any luck! I am trying to do same thing, any guidance will be helpful :slight_smile:

1 Like

Im trying to do the same. I will like to have my users to input data by talking or chatting instead of using a form. Any recommendations on where to begin?

2 Likes

This is what I often fail to accomplish until now, my assistant loses memory after a few questions. However, I can let the model ask questions and the user answer, their entire conversation will be recorded in the log. So, with this log, it could be processed again by the model to construct the quiz with answers. I will test that, better idea?

TL/DR; I’m following bc I want the same! Dropping in here March 2024 to say that I’m also trying to build this. I’ve built a custom gpt for my niche business for the customer side…basically it’s an answerbot. The next iteration would be to gather client info and enter it into a form that is then sent to my CSR for prompt response. Also, to spin it internally, my techs could voice enter data from the field and have that populate a form.

Same thing here, wondering if anyone has found a solution for this

I have not needed JSON outputs from AI for any of my apps. But I hear it is extremely unreliable, especially if you’re using gpt 3.5.

Maybe I’m not understanding the question - you want the chatbot to format answers to specific questions into JSON format? If you know the questions, then why don’t you simply take the user’s message and format it into JSON yourself and send that JSON to the form API?

Or are the questions not predetermined? I figured if it was a form then they would be predetermined, now, the big unknown for me is whether the user gives a valid answer or not, but there are ways around that or you could just accept some bad apples.

For example, we have a hotel reservation chatbot with the following function/tool:

{
  "name": "reserve_hotel",
  "description": "Reserve a room for the user in the hotel",
  "parameters": {
    "type": "object",
    "properties": {
      "hotel": {
        "type": "string",
        "description": "Name of the hotel"
      },
      "location": {
        "type": "string",
        "description": "Location or branch of the hotel"
      },
      "fullName": {
        "type": "string",
        "description": "Full name of the user making reservation"
      },
      "email": {
        "type": "string",
        "description": "Email address of the user making the reservation"
      },
      "phoneNumber": {
        "type": "string",
        "description": "Contact number of the user making the reservation"
      },
      "numberOfGuests": {
        "type": "integer",
        "description": "Total number of people who will be staying in the room"
      },
      "checkInDate": {
        "type": "string",
        "description": "Date when the guests will arrive in 'YYYY-MM-DD' format"
      },
      "checkOutDate": {
        "type": "string",
        "description": "Date when the guests will leave in 'YYYY-MM-DD' format"
      },
      "roomType": {
        "type": "string",
        "description": "Type of room desired (e.g., single, double, suite)",
        "enum": [
          "single",
          "double",
          "suite"
        ]
      },
      "specialRequests": {
        "type": "array",
        "description": "Any specific requests like a room on a certain floor, near the elevator, extra bed, etc.",
        "items": {
          "type": "string"
        }
      }
    },
    "required": [
      "hotel",
      "location",
      "fullName",
      "email",
      "phoneNumber",
      "numberOfGuests",
      "checkInDate",
      "checkOutDate",
      "roomType",
      "specialRequests"
    ]
}

The output for this tool, if valid, will be added to the DB.

Check the following sample conversations. First one is pretty straightforward, where the required parameters are listed up front.

The second one we need to extract the required parameters from the user one by one. This can be done by proper validation of the tool output including how to handle hallucinations.

1 Like