Aracılığıyla paylaş


Azure OpenAI Yardımcıları işlev çağrısı

Yardımcılar API'si, bir Yardımcı'ya işlevlerin yapısını açıklamanıza ve ardından bağımsız değişkenleriyle birlikte çağrılması gereken işlevleri döndürmenize olanak tanıyan işlev çağrısını destekler.

Not

  • Dosya arama , yardımcı başına 10.000'e kadar dosya alabilir - öncekinden 500 kat daha fazla. Hızlıdır, çok iş parçacıklı aramalar aracılığıyla paralel sorguları destekler ve gelişmiş yeniden boyutlandırma ve sorgu yeniden yazma özellikleri sunar.
    • Vektör deposu API'de yeni bir nesnedir. Bir dosya bir vektör deposuna eklendikten sonra otomatik olarak ayrıştırılır, öbeklenip eklenir ve aranmaya hazır hale getirilir. Vektör depoları yardımcılar ve iş parçacıkları arasında kullanılabilir ve bu da dosya yönetimini ve faturalamayı basitleştirir.
  • Belirli bir çalıştırmada tool_choice belirli bir aracın (dosya arama, kod yorumlayıcı veya işlev gibi) kullanılmasını zorlamak için kullanılabilecek parametre desteği ekledik.

İşlev çağrısı desteği

Desteklenen modeller

Modeller sayfası, Yardımcıların desteklendiği bölgeler/modeller hakkında en güncel bilgileri içerir.

Paralel işlevler de dahil olmak üzere işlev çağrısının tüm özelliklerini kullanmak için 6 Kasım 2023'den sonra yayımlanan bir modeli kullanmanız gerekir.

API Sürümleri

  • 2024-02-15-preview
  • 2024-05-01-preview

Örnek işlev tanımı

Not

  • Belirli bir çalıştırmada tool_choice belirli bir aracın (, veya functiongibifile_searchcode_interpreter) kullanılmasını zorlamak için kullanılabilecek parametresi için destek ekledik.
  • Çalıştırmaların süresi oluşturulduktan on dakika sonra dolar. Bu süre dolmadan önce araç çıkışlarınızı gönderdiğinizden emin olun.
  • Ayrıca Azure Logic apps ile işlev çağrısı da gerçekleştirebilirsiniz
from openai import AzureOpenAI
    
client = AzureOpenAI(
    api_key=os.getenv("AZURE_OPENAI_API_KEY"),  
    api_version="2024-02-15-preview",
    azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT")
    )

assistant = client.beta.assistants.create(
  instructions="You are a weather bot. Use the provided functions to answer questions.",
  model="gpt-4-1106-preview", #Replace with model deployment name
  tools=[{
      "type": "function",
    "function": {
      "name": "getCurrentWeather",
      "description": "Get the weather in location",
      "parameters": {
        "type": "object",
        "properties": {
          "location": {"type": "string", "description": "The city and state e.g. San Francisco, CA"},
          "unit": {"type": "string", "enum": ["c", "f"]}
        },
        "required": ["location"]
      }
    }
  }, {
    "type": "function",
    "function": {
      "name": "getNickname",
      "description": "Get the nickname of a city",
      "parameters": {
        "type": "object",
        "properties": {
          "location": {"type": "string", "description": "The city and state e.g. San Francisco, CA"},
        },
        "required": ["location"]
      }
    } 
  }]
)

İşlevleri okuma

İşlevi tetikleyen bir kullanıcı İletisi ile Çalıştır'ı başlattığınızda, Çalıştır beklemede bir durum girer. İşlemden sonra çalıştırma, Çalıştır'ı alarak doğrulayabileceğiniz bir requires_action durumu girer.

{
  "id": "run_abc123",
  "object": "thread.run",
  "assistant_id": "asst_abc123",
  "thread_id": "thread_abc123",
  "status": "requires_action",
  "required_action": {
    "type": "submit_tool_outputs",
    "submit_tool_outputs": {
      "tool_calls": [
        {
          "id": "call_abc123",
          "type": "function",
          "function": {
            "name": "getCurrentWeather",
            "arguments": "{\"location\":\"San Francisco\"}"
          }
        },
        {
          "id": "call_abc456",
          "type": "function",
          "function": {
            "name": "getNickname",
            "arguments": "{\"location\":\"Los Angeles\"}"
          }
        }
      ]
    }
  },
...

İşlev çıkışları gönderiliyor

Ardından çağırdığınız işlevlerden araç çıkışını göndererek Çalıştır'ı tamamlayabilirsiniz. Çıktıyı tool_call_id her işlev çağrısıyla required_action eşleştirmek için yukarıdaki nesnede başvuruda bulunanı geçirin.

from openai import AzureOpenAI
    
client = AzureOpenAI(
    api_key=os.getenv("AZURE_OPENAI_API_KEY"),  
    api_version="2024-02-15-preview",
    azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT")
    )


run = client.beta.threads.runs.submit_tool_outputs(
  thread_id=thread.id,
  run_id=run.id,
  tool_outputs=[
      {
        "tool_call_id": call_ids[0],
        "output": "22C",
      },
      {
        "tool_call_id": call_ids[1],
        "output": "LA",
      },
    ]
)

Araç çıkışlarını gönderdikten sonra Çalıştır, yürütmeye queued devam etmeden önce durumu girer.

Ayrıca bkz.