OpenAI extensions
Get Pocket OpenAI Tool Spec
from hyperpocket_openai import PocketOpenAI
pocket = PocketOpenAI(tools=[
"https://github.com/vessl-ai/hyperpocket/tree/main/tools/slack/get-messages",
"https://github.com/vessl-ai/hyperpocket/tree/main/tools/slack/post-message",
]
)
# get openai tool specs from pocket
tool_specs = pocket.get_open_ai_tool_specs()
Tool Injection
import os
from openai import OpenAI
llm = OpenAI()
messages = [
{
"role": "user",
"content": "get slack message",
}
]
response = llm.chat.completions.create(
model=os.getenv("OPEN_AI_MODEL"),
messages=messages,
tools=tool_specs # pass the tool specs as an tools argument
)
Tool Call
response = llm.chat.completions.create(
model=os.getenv("OPEN_AI_MODEL"),
messages=messages,
tools=tool_specs
)
choice = response.choices[0]
messages.append(choice.message)
if choice.finish_reason == "tool_calls":
for tool_call in choice.message.tool_calls:
# tool call by pocket
tool_message = pocket.invoke(tool_call)
messages.append(tool_message)
# ...
Full Code
import os
from openai import OpenAI
from hyperpocket_openai import PocketOpenAI
pocket = PocketOpenAI(tools=[
"https://github.com/vessl-ai/hyperpocket/tree/main/tools/slack/get-messages",
"https://github.com/vessl-ai/hyperpocket/tree/main/tools/slack/post-message",
]
)
tool_specs = pocket.get_open_ai_tool_specs()
llm = OpenAI()
messages = [
{
"role": "user",
"content": "get slack message",
}
]
response = llm.chat.completions.create(
model=os.getenv("OPEN_AI_MODEL"),
messages=messages,
tools=tool_specs
)
choice = response.choices[0]
messages.append(choice.message)
if choice.finish_reason == "tool_calls":
for tool_call in choice.message.tool_calls:
tool_message = pocket.invoke(tool_call)
messages.append(tool_message)
repsonse_after_tool_call = llm.chat.completions.create(
model=os.getenv("OPEN_AI_MODEL"),
messages=messages,
tools=tool_specs
)
Examples
from hyperpocket.tool import from_git
from openai import OpenAI
from hyperpocket_openai import PocketOpenAI
pocket = PocketOpenAI(
tools=[
from_git("https://github.com/vessl-ai/hyperawesometools", "main", "managed-tools/slack/get-messages"),
from_git("https://github.com/vessl-ai/hyperawesometools", "main", "managed-tools/slack/post-message"),
]
)
tool_specs = pocket.get_open_ai_tool_specs()
model = OpenAI()
messages = []
while True:
print("user input(q to quit) : ", end="")
user_input = input()
if user_input == "q":
break
user_message = {"content": user_input, "role": "user"}
messages.append(user_message)
while True:
response = model.chat.completions.create(
model="gpt-4o",
messages=messages,
tools=tool_specs,
)
choice = response.choices[0]
messages.append(choice.message)
if choice.finish_reason == "stop":
break
elif choice.finish_reason == "tool_calls":
tool_calls = choice.message.tool_calls
for tool_call in tool_calls:
tool_message = pocket.invoke(tool_call)
messages.append(tool_message)
print("response : ", messages[-1].content)
Metadata
Release files for hyperpocket-openai 0.5.7
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| hyperpocket_openai-0.5.7.tar.gz | 60.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| hyperpocket_openai-0.5.7-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 64.8 kB
Release files / hyperpocket_openai-0.5.7.tar.gz
| Download URL | hyperpocket_openai-0.5.7.tar.gz |
|---|---|
| Size | 60.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e59ee4ba2cf4ed870861d19a15d3925ad63c206b7d54e251c53e32f0f6059dba
|
|
BLAKE2b-256 checksum How to use checksums |
42d5e3837967911b36473de2d785d12c262bc7bc47907f131742aa5b84d8e80e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.6.14
|
Release files / hyperpocket_openai-0.5.7-py3-none-any.whl
| Download URL | hyperpocket_openai-0.5.7-py3-none-any.whl |
|---|---|
| Size | 4.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
34917e243757e1083de5e0b2c19f57da3cce0eed248ff017946192342bf59a3b
|
|
BLAKE2b-256 checksum How to use checksums |
6c766912cc07af9f60d652ab624399f5674cd9f7be70e006a13dc4fc9fe03796
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.6.14
|