|
--- |
|
license: apache-2.0 |
|
--- |
|
|
|
π Try it out on [Colab](https://colab.research.google.com/drive/16M5J2H9F8YQora_W2PDnp120slZH-Mqd?usp=sharing) |
|
π£ Read more in our [OpenFunctions blog release](https://gorilla.cs.berkeley.edu/blogs/4_open_functions.html) |
|
|
|
## Introduction |
|
Gorilla OpenFunctions extends Large Language Model(LLM) Chat Completion feature to formulate |
|
executable APIs call given natural language instructions and API context. |
|
|
|
## Models Available |
|
|model | functionality| |
|
|---|---| |
|
|gorilla-openfunctions-v0 | Given a function, and user intent, returns properly formatted json with the right arguments| |
|
|gorilla-openfunctions-v1 | + Parallel functions, and can choose between functions| |
|
|
|
## Example Usage |
|
|
|
1. OpenFunctions is compatible with OpenAI Functions |
|
|
|
```bash |
|
!pip install openai==0.28.1 |
|
``` |
|
|
|
2. Point to Gorilla hosted servers |
|
|
|
```python |
|
import openai |
|
|
|
def get_gorilla_response(prompt="Call me an Uber ride type \"Plus\" in Berkeley at zipcode 94704 in 10 minutes", model="gorilla-openfunctions-v0", functions=[]): |
|
openai.api_key = "EMPTY" |
|
openai.api_base = "http://luigi.millennium.berkeley.edu:8000/v1" |
|
try: |
|
completion = openai.ChatCompletion.create( |
|
model="gorilla-openfunctions-v1", |
|
temperature=0.0, |
|
messages=[{"role": "user", "content": prompt}], |
|
functions=functions, |
|
) |
|
return completion.choices[0].message.content |
|
except Exception as e: |
|
print(e, model, prompt) |
|
``` |
|
|
|
3. Pass the user argument and set of functions, Gorilla OpenFunctions returns a fully formatted json |
|
|
|
```python |
|
query = "Call me an Uber ride type \"Plus\" in Berkeley at zipcode 94704 in 10 minutes" |
|
functions = [ |
|
{ |
|
"name": "Uber Carpool", |
|
"api_name": "uber.ride", |
|
"description": "Find suitable ride for customers given the location, type of ride, and the amount of time the customer is willing to wait as parameters", |
|
"parameters": [{"name": "loc", "description": "location of the starting place of the uber ride"}, {"name":"type", "enum": ["plus", "comfort", "black"], "description": "types of uber ride user is ordering"}, {"name": "time", "description": "the amount of time in minutes the customer is willing to wait"}] |
|
} |
|
] |
|
get_gorilla_response(query, functions=functions) |
|
``` |
|
|
|
4. Expected output |
|
|
|
```bash |
|
uber.ride(loc="berkeley", type="plus", time=10) |
|
``` |
|
|
|
## Contributing |
|
|
|
All the models, and data used to train the models is released under Apache 2.0. |
|
Gorilla is an open source effort from UC Berkeley and we welcome contributors. |
|
Please email us your comments, criticism, and questions. More information about the project can be found at [https://gorilla.cs.berkeley.edu/](https://gorilla.cs.berkeley.edu/) |
|
|
|
|
|
|
|
|
|
|
|
|