Aracılığıyla paylaş


Azure OpenAI API'si benzetimi

Bir bakışta
Hedef: Yerel LLM kullanarak Azure OpenAI simülasyonu
Süre: 15 dakika
Eklentiler: OpenAIMockResponsePlugin
Önkoşullar:Geliştirme Proxy'sini ayarlama, Yerel dil modeli

Azure OpenAI'ye bağlı uygulamalar oluşturduğunuzda genellikle uygulamanın yalnızca bir bölümü Azure OpenAI API'siyle etkileşim kurar. Uygulamanın Azure OpenAI API'sinden gerçek yanıt gerektirmeyen bölümleri üzerinde çalışırken, Dev Proxy kullanarak yanıtların benzetimini yapabilirsiniz. Sanal yanıtların kullanılması gereksiz maliyetlerle karşılaşmamanızı sağlar. Azure OpenAIMockResponsePlugin OpenAI API'sinden gelen yanıtların benzetimini yapmak için makinenizde çalışan bir yerel dil modeli kullanır.

Başlamadan önce

Dev Proxy kullanarak Azure OpenAI API yanıtlarının benzetimini yapmak için makinenizde desteklenen bir dil modeli istemcisinin yüklü olması gerekir.

Varsayılan olarak Dev Proxy, Ollama üzerinde çalışan llama3.2 dil modelini kullanır. Farklı bir istemci veya model kullanmak için Dev Proxy yapılandırma dosyasındaki dil modeli ayarlarını güncelleştirin.

Azure OpenAI API yanıtlarının benzetimini yapmak için Dev Proxy'yi yapılandırma

İpucu

Bu öğreticide açıklanan adımlar kullanıma hazır Dev Proxy ön ayarında kullanılabilir. Ön ayarı kullanmak için komut satırında komutunu çalıştırın devproxy config get simulate-azure-openaive yönergeleri izleyin.

Dev Proxy kullanarak Azure OpenAI API yanıtlarının benzetimini yapmak için, OpenAIMockResponsePlugin öğesini devproxyrc.json dosyasında etkinleştirmeniz gerekir.

Dosya:devproxyrc.json

{
  "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v2.0.0/rc.schema.json",
  "plugins": [
    {
      "name": "OpenAIMockResponsePlugin",
      "enabled": true,
      "pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll"
    }
  ]
}

Ardından Dev Proxy'yi Azure OpenAI API'sine yönelik istekleri kesecek şekilde yapılandırın. Kolaylık olması için, tüm dağıtımlara yönelik istekleri kesmek için joker karakterler kullanın.

Dosya: devproxyrc.json

{
  // [...] trimmed for brevity
  "urlsToWatch": [
    "https://*.openai.azure.com/openai/deployments/*/completions*"
  ]
}

Son olarak, Dev Proxy'yi yerel dil modeli kullanacak şekilde yapılandırın.

Dosya: devproxyrc.json

{
  // [...] trimmed for brevity
  "languageModel": {
    "enabled": true
  }
}

Yapılandırma dosyasının tamamı şöyle görünür.

Dosya: devproxyrc.json

{
  "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v2.0.0/rc.schema.json",
  "plugins": [
    {
      "name": "OpenAIMockResponsePlugin",
      "enabled": true,
      "pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll"
    }
  ],
  "urlsToWatch": [
    "https://*.openai.azure.com/openai/deployments/*/completions*"
  ],
  "languageModel": {
    "enabled": true
  }
}

Azure OpenAI API yanıtlarının benzetimini yapın

Varsayılan yapılandırmayı varsayarsak, Ollama'yı llama3.2 dil modeliyle başlatın. Komut satırında komutunu çalıştırın ollama run llama3.2.

Ardından Dev Proxy'yi başlatın. Ön ayarı kullanıyorsanız komutunu çalıştırın devproxy -c "~appFolder/config/simulate-azure-openai/simulate-azure-openai.json. adlı devproxyrc.json, geçerli çalışma dizininde depolanan özel bir yapılandırma dosyası kullanıyorsanız komutunu çalıştırın devproxy. Dev Proxy, Ollama'daki dil modeline erişip erişemediğini denetler ve Azure OpenAI API yanıtlarının benzetimini yapmaya hazır olduğunu onaylar.

 info    OpenAIMockResponsePlugin: Checking language model availability...
 info    Listening on 127.0.0.1:8000...

Hotkeys: issue (w)eb request, (r)ecord, (s)top recording, (c)lear screen
Press CTRL+C to stop Dev Proxy

Uygulamanızı çalıştırın ve Azure OpenAI API'sine istek gönderin. Dev Proxy istekleri durdurur ve yerel dil modelini kullanarak yanıtların simülasyonunu oluşturur.

Azure OpenAI API'sine yönelik istek için yanıt simülasyonu yapılan Dev Proxy ile komut isteminin ekran görüntüsü.

Sonraki adım

OpenAIMockResponsePlugin hakkında daha fazla bilgi edinin.

Örnekler

Ayrıca ilgili Dev Proxy örneklerine de bakın: