openai-api-with-easy-tools-and-web-browsing
An unofficial OpenAI library for Python, featuring an integrated Bing Custom Search API for web browsing (free) and easy-to-use custom tools.
Here is an example of capabilities of this library:
If you ask the program:
Can you search the internet for the population of Paris and New York in the year 2015, then add the two values together and tell me the result, and then add 10,000,000 to that result
The response, using a web search and a custom tool to add two numbers, should be something like:
The total population of Paris and New York in 2015 was about 31,082,144 inhabitants. If 10,000,000 is added to this number, it becomes 41,082,144.
See code below to reproduce this example.
First, get an API key from OpenAI here and get a Bing Custom Search API key, which you can get here (free for limited use)
Then, get the library with pip: pip install openai-api-with-easy-tools-and-web-browsing
And then, you can use the following code to get started:
import openai_api_with_easy_tools_and_web_browsing as webBrowsingApiGPT
subscriptionKey = ""
openAIAPIKey = ""
bingSearchEngine = webBrowsingApiGPT.BingSearchEngine(openAIAPIKey, subscriptionKey, model="gpt-3.5-turbo")
bingSearch = bingSearchEngine.bingSearch
bingSearchDescription = webBrowsingApiGPT.BING_SEARCH_DESCRIPTION
def adder(a, b):
"""This function adds two numbers together"""
return (str(a + b))
adderDescription = {
"type": "function",
"function": {
"name": "adder",
"description": "Add two numbers together",
"parameters": {
"type": "object",
"properties": {
"a": {
"type": "integer",
"description": "The first number to add"
},
"b": {
"type": "integer",
"description": "The second number to add"
},
},
"required": ["a", "b"]
}
}
}
openaiApiWithEasyToolsAndWebBrowsing = webBrowsingApiGPT.OpenaiApiWithEasyToolsAndWebBrowsing(openAIAPIKey)
print("PONCTUAL MODE\n")
prompt = "Can you search the internet for the population of Paris and New York in the year 2015, then add the two values together and tell me the result, and then add 10,000,000 to that result"
answer = openaiApiWithEasyToolsAndWebBrowsing.getLLMAnswer(prompt, systemMessage="You are a helpful assistant", model="gpt-3.5-turbo", mode="ponctual",
toolList=[bingSearch, adder], toolDescriptionList=[bingSearchDescription, adderDescription],
temperature=0.9, top_p=1,
verbosity=1)
print(answer)
print("\n\n\nCONTINUOUS MODE\n")
openaiApiWithEasyToolsAndWebBrowsing.getLLMAnswer(None, systemMessage="You are a helpful assistant", model="gpt-4o", mode="continuous",
toolList=[bingSearch, adder], toolDescriptionList=[bingSearchDescription, adderDescription],
max_prompt_tokens=4096, max_completion_tokens=2048,
verbosity=1)