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.1.10.tar.gz (59.1 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.1.10-py3-none-any.whl (3.9 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for hyperpocket_openai-0.1.10.tar.gz
Algorithm Hash digest
SHA256 e912433bffd527066611bf57111b78243d355ccd322f94de7834ddc46e66753c
MD5 7c669cc507d037e5016eebb556ac941e
BLAKE2b-256 f70445bc3772dd95a3e5396c8780ff2522b013f2e9b67f31adfeeafdb79e7c18

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for hyperpocket_openai-0.1.10-py3-none-any.whl
Algorithm Hash digest
SHA256 425766b3c6bdf6ced582f1c034cf7e8089a239b7bc85b132e05d6a62926e7c9a
MD5 284e0f047eb55c0413fba646a01ad9f4
BLAKE2b-256 9b0397f42bccf2baecfaf9195e48a6511ee28d1c90daae59b0e9f52d7456d288

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