Custom Tool

Özel tools'ları nasıl kullanılacağını izleyin

YOUTUBE VİDEOSU!!!

Problem

Fonksiyon genellikle yapılandırılmış girdi verileri alır. Diyelim ki LLM'nin Airtable Create Record API'sini çağırabilmesini istiyorsunuz, gövde parametrelerinin belirli bir şekilde yapılandırılması gerekir. Örneğin:

"records": [
  {
    "fields": {
      "Address": "some address",
      "Name": "some name",
      "Visited": true
    }
  }
]

Tercihen, LLM'nin bu şekilde düzgün yapılandırılmış bir veri döndürmesini isteriz:

{
  "Address": "some address",
  "Name": "some name",
  "Visited": true
}

Böylece değeri çıkarabilir ve API için gereken gövdeye ayrıştırabiliriz. Ancak, LLM'ye tam kalıbı çıkarması için talimat vermek zordur.

Yeni OpenAI Function Calling modelleri ile artık bu mümkün. gpt-4-0613 ve gpt-3.5-turbo-0613, yapılandırılmış verileri döndürmek için özel olarak eğitilmiştir. Model, bu işlevleri çağırmak için argümanlar içeren bir JSON nesnesi çıktısı vermeyi akıllıca seçecektir.

Öğretici

Hedef: Agent'ın hisse senedi fiyat hareketini otomatik olarak almasını, ilgili hisse senedi haberlerini almasını ve Airtable'a yeni bir kayıt eklemesini sağlamak.

Başlayalım🚀

Tools Oluşturun

Hedefimize ulaşmak için 3 araca ihtiyacımız var:

  • Hisse Senedi Fiyat Hareketini Alın

  • Hisse Senedi Haberlerini Alın

  • Airtable Kaydı Ekleme

Hisse Senedi Fiyat Hareketini Alın

Aşağıdaki ayrıntılarla yeni bir Tool oluşturun (istediğiniz gibi değiştirebilirsiniz):

  • Adı: get_stock_movers

  • Açıklama: En büyük fiyat/hacim hareketlerine sahip hisse senetlerini alın, örneğin aktifler, kazananlar, kaybedenler vb.

ChatGPT bu aracı ne zaman kullanacağına karar vermek için buna güvendiği için açıklama önemli bir parçadır.

  • JavaScript Fonksiyonu: Veri almak için Morning Star /market/v2/get-movers API'sini kullanacağız. Öncelikle henüz yapmadıysanız Teste Abone Ol'a tıklamanız, ardından kodu kopyalamanız ve JavaScript İşlevine yapıştırmanız gerekir.

    • Kütüphaneyi içe aktarmak için en üste const fetch = require('node-fetch'); ekleyin. Tüm yerleşik NodeJS modüllerini ve harici kütüphaneleri(KÜTÜPHANEMİZ EKLENECEK) içe aktarabilirsiniz.

    • En sonda result'ı geri döndürün.

Son kod şöyle olmalıdır:

Artık kaydedebilirsiniz.

Stock haberlerini alın

Aşağıdaki ayrıntılarla yeni bir Tool oluşturun (istediğiniz gibi değiştirebilirsiniz):

  • İsim: get_stock_news

  • Açıklama: Bir hisse senedi için en son haberleri alın

  • Input Schema:

    • Özellik: performanceId

    • Tür: String

    • Açıklama: API'de performanceID olarak adlandırılan hisse senedinin kimliği

    • Zorunluluk: true

Input Schema, LLM'ye JSON nesnesi olarak ne döndüreceğini söyler. Bu durumda, aşağıdaki gibi bir JSON nesnesi bekliyoruz:

  • JavaScript Function: Verileri almak için Morning Star /news/list API'sini kullanacağız. Öncelikle henüz yapmadıysanız Subscribe to Test'e tıklamanız, ardından kodu kopyalamanız ve JavaScript İşlevine yapıştırmanız gerekir.

    • Kütüphaneyi içe aktarmak için en üste const fetch = require('node-fetch'); ekleyin. Tüm yerleşik NodeJS modules ve harici kütüphaneleri(LİNK GELECEK) içe aktarabilirsiniz.

    • En sonda result'ı geri döndürün.

  • Ardından, sabit kodlanmış url sorgu parametresini performanceId: 0P0000OQN8 parametresini Input Schema'da belirtilen özellik değişkeniyle değiştirin: $performanceId

  • Değişken adının önüne $ önekini ekleyerek Input Schema'da belirtilen tüm özellikleri JavaScript Function'da değişken olarak kullanabilirsiniz.

Son kod:

Artık kaydedebilirsiniz.

Airtable Kaydı Ekle

Aşağıda ayrıntıları verilen yeni bir Tool oluşturun (istediğiniz gibi değiştirebilirsiniz):

  • Adı: add_airtable

  • Açıklama: Hisse senedi, haber özeti ve fiyat hareketini Airtable'a ekleyin

  • Input Schema:

    • Özellik: hisse senedi

    • Tür: dize

    • Açıklama: hisse senedi ticker

    • Zorunluluk: true

    • Özellik: move

    • Tür: String

    • Açıklama: % olarak fiyat hareketi

    • Zorunluluk: true

    • Emlak: news_summary

    • Tür: String

    • Açıklama: hisse senedinin haber özeti

    • Zorunluluk: true

ChatGPT, aşağıdaki gibi bir JSON nesnesi döndürür:

  • JavaScript Function: Mevcut bir tabloya yeni bir kayıt oluşturmak için Airtable Create Record API'sini kullanacağız. tableId ve baseId değerlerini buradan bulabilirsiniz. Ayrıca kişisel bir erişim belirteci oluşturmanız gerekecek, bunu nasıl yapacağınızı buradan bulabilirsiniz.

Kodun son hali aşağıdaki gibi olmalıdır. Değişken olarak $stock, $move ve $news_summary değerlerini nasıl aktardığımıza dikkat edin:

Artık kaydedebilirsiniz.

3 tool'un oluşturulduğunu görmelisiniz:

Chatflow Oluştur

Marketplace'ten OpenAI Function Agent şablonunu kullanabilir ve tool'ları Custom Tool ile değiştirebilirsiniz. Oluşturduğunuz tool'u seçin.

Not: OpenAI Function Agent şu anda yalnızca 0613 modellerini desteklemektedir.

Chatflow'u kaydedin ve test etmeye başlayın. Başlangıç olarak şu soruyu sormayı deneyebilirsiniz:

Bugün en büyük fiyat hareketine sahip hisse senedi nedir?

Bugün en büyük fiyat hareketine sahip olan hisse senedi %17,47'lik fiyat hareketiyle Overstock.com (OSTK) oldu.

Daha sonra söz konusu hisse senediyle ilgili haberleri almak için başka bir soruyla devam edebilirsiniz:

Bu hisse senedi hakkında fiyat hareketine neden olabilecek en son haberler nelerdir?

İşte Overstock.com (OSTK) hakkında fiyat hareketine neden olabilecek en son haberler:

  1. Manşet: “Overstock'un hisseleri Bed Bath & Beyond varlıkları için 21,5 milyonluk başarılı teklif üzerine yükseldi” Kaynak: MarketWatch Yayınlanma Tarihi: 22 Haziran 2023 Özet: Overstock.com'un hisseleri, Bed Bath & Beyond varlıkları için 21,5 milyon değerinde bir teklifi başarıyla kazanmasının ardından önemli bir artış yaşadı.

  2. Manşet: “Meta Platforms, Overstock.com, Walmart, Home Depot veya United Parcel Service'te opsiyon veya hisse senedi ticareti yapmayı mı düşünüyorsunuz?” Kaynak: PR Newswire Yayınlanma Tarihi: 22 Haziran 2023 Özet: Bu haberde, Overstock.com da dahil olmak üzere yatırımcıların göz önünde bulundurabileceği potansiyel alım satım seçenekleri ve hisse senetleri tartışılmaktadır

Bu haber makalelerinin yalnızca bilgilendirme amaçlı olduğunu ve fiyat hareketinin tek nedeni olmayabileceğini lütfen unutmayın. Herhangi bir yatırım kararı vermeden önce her zaman kapsamlı araştırma ve analiz yapılması tavsiye edilir.

Son olarak, ChatGPT'den Airtable'a yeni bir kayıt eklemesini isteyebilirsiniz:

Airtable'a hisse senedi kodu, fiyat hareketi ve haber özetini içeren bir kayıt ekleyebilir misiniz?

Airtable'a aşağıdaki ayrıntılarla bir kayıt ekledim:

Hisse Senedi Bileti: OSTK Fiyat Hareketi: %17,47 Haber Özeti: Overstock.com'un hisseleri, Bed Bath & Beyond varlıkları için 21,5 milyon dolar değerinde bir teklifi başarıyla kazanmasının ardından önemli bir artış yaşadı.

🎉🎉İşte bu kadar! Kendinize özel tool'unuzu bu şekilde oluşturabilir ve OpenAI Function Agent ile kullanabilirsiniz!

Ek Olarak

Session ID'yi Fonksiyona Geçirme

Varsayılan olarak, Custom Tool'daki Function aşağıdaki akış konfigürasyonlarına erişebilir:

Aşağıda, sessionId'yi Discord web kancasına göndermeye ilişkin bir örnek verilmiştir:

Değişkenleri Fonksiyona Aktarma

Bazı durumlarda, değişkenleri custom tool function'a aktarmak istersiniz.

Örneğin, özel bir araç kullanan bir sohbet robotu oluşturuyorsunuz. Custom tool bir HTTP POST çağrısı gerçekleştiriyor ve başarılı bir kimlik doğrulama isteği için API anahtarı gerekiyor. Bunu bir değişken olarak aktarabilirsiniz.

Varsayılan olarak, custom tool'daki Function'ın değişkenlere erişimi vardır:

API ve Embedded kullanarak AIFINEX Flow'daki değişkenlerin nasıl aktarılacağına dair örnek:

Custom tool'da değişkenlerin nasıl alınacağına dair örnek:

Custom Tool'u Override Yapma

Aşağıdaki parametreler override olabilir

Parametre
Açıklama

customToolName

tool adı

customToolDesc

tool açıklaması

customToolSchema

tool şeması

customToolFunc

tool fonksiyonu

Custom tool parametrelerini override etmek için bir API çağrısı örneği:

External Dependencies'i İçe Aktarma

Tüm dahili NodeJS modüllerini ve desteklenen harici kütüphaneleri(LİNKİMİZ GELECEK) Function'a aktarabilirsiniz.

  1. Desteklenmeyen kütüphaneleri içe aktarmak için, yeni npm paketini packages/components klasöründeki package.json dosyasına kolayca ekleyebilirsiniz.

  1. Ardından, içe aktarılan kütüphaneleri TOOL_FUNCTION_EXTERNAL_DEP ortam değişkenine ekleyin.

  2. Uygulamayı başlatın

  1. Daha sonra yeni eklenen kütüphaneyi JavaScript Function'da aşağıdaki gibi kullanabilirsiniz:

Ek bağımlılıkların nasıl ekleneceğini ve kitaplıkların nasıl içe aktarılacağını izleyin

YOUTUBE VİDEOSU!!!!!!!!!!!!

Last updated