Skip to main content

No project description provided

Project description

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-message",
    "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-message",
    "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-message"),
        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)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

hyperpocket_openai-0.3.3.tar.gz (59.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

hyperpocket_openai-0.3.3-py3-none-any.whl (3.9 kB view details)

Uploaded Python 3

File details

Details for the file hyperpocket_openai-0.3.3.tar.gz.

File metadata

  • Download URL: hyperpocket_openai-0.3.3.tar.gz
  • Upload date:
  • Size: 59.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.5.30

File hashes

Hashes for hyperpocket_openai-0.3.3.tar.gz
Algorithm Hash digest
SHA256 db39a834d59174b09a92f5ef2c8cc79d1c9a93870b007a3b62c08f5d2366082c
MD5 c27cf9e3045276c8f7715ed43d9c73ed
BLAKE2b-256 0578a32ab832dee8014af799e73e374910305c292b562b2bdd0e7ffa8f713f8c

See more details on using hashes here.

File details

Details for the file hyperpocket_openai-0.3.3-py3-none-any.whl.

File metadata

File hashes

Hashes for hyperpocket_openai-0.3.3-py3-none-any.whl
Algorithm Hash digest
SHA256 2ba3ae3e6a9114efbbea9b245172f61edaa71f5a09317479cf525e2008a1e480
MD5 03dc74644999fd233b6d12b51e58ff30
BLAKE2b-256 677b6ad4de7b70920bafddf48d98e35305a804789bd92fa3c7c831c3a4432329

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page