Tüm Ürünler
Search
Belge Merkezi

Platform For AI:Uygulama akışını dağıtma

Son Güncelleme:Oct 04, 2026

Bir uygulama akışı geliştirdikten sonra bunu Elastic Algorithm Service (EAS) hizmeti olarak dağıtabilirsiniz. EAS; otomatik ölçeklendirme ve kapsamlı Hizmet İzleme gibi özellikler sunar. Bu özellikler uygulamanızın iş değişikliklerine uyum sağlamasına, sistem kararlılığını ve performansını artırmasına ve üretim ortamının gereksinimlerini karşılamasına yardımcı olur.

Ön koşullar

Bir uygulama akışı oluşturmuş ve hata ayıklamasını tamamlamış olmanız gerekir. Daha fazla bilgi için bkz. Uygulama akışı geliştirme.

Uygulama akışını dağıtma

LangStudio adresine gidin ve bir çalışma alanı seçin. Application Flow sekmesinde hata ayıkladığınız uygulama akışına tıklayın ve ardından sağ üst köşede yer alan Deploy öğesine tıklayın. Çalışma zamanı başlatılmışsa uygulama akışını dağıtabilirsiniz. Aşağıdaki tabloda ana parametreler açıklanmaktadır.

image

Parametre

Açıklama

Kaynak dağıtımı

Kaynak türü

Oluşturduğunuz bir ortak kaynak grubunu veya özel kaynak grubunu seçin.

Örnekler

Hizmet örneklerinin sayısını yapılandırın. Üretim ortamında tek nokta arızası riskini azaltmak için birden fazla hizmet örneği yapılandırın.

Dağıtım kaynakları

Uygulama akışını yalnızca iş akışı zamanlaması için kullanıyorsanız iş akışının karmaşıklığına göre uygun CPU kaynaklarını seçin. GPU kaynaklarına kıyasla CPU kaynakları genellikle daha maliyet etkindir. Dağıtımdan sonra EAS için kaynak ücreti tahsil edilir. Faturalandırma hakkında daha fazla bilgi için bkz. Elastic Algorithm Service (EAS) faturalandırması.

Virtual Private Cloud (VPC): Bir uygulama akışı EAS hizmeti olarak dağıtılır. Dağıtımdan sonra istemcilerin çevrimiçi EAS hizmetine erişebilmesini sağlamak için istemciyi hizmete bağlayacak bir VPC seçin. EAS hizmetlerinin varsayılan olarak genel ağa erişemediğini unutmayın. EAS hizmetinizin genel ağa erişmesi gerekiyorsa genel ağ erişim yeteneklerine sahip bir VPC yapılandırın. Daha fazla bilgi için bkz. EAS üzerinden genel veya özel kaynaklara erişim.

Not

Uygulama akışı Milvus gibi bir vektör veritabanı bağlantısı içeriyorsa yapılandırılan VPC'nin vektör veritabanı örneğinin bulunduğu VPC ile aynı olduğundan veya iki ağın birbirine bağlı olduğundan emin olun.

Sohbet geçmişi

Sohbet geçmişini etkinleştir

Bu parametre yalnızca sohbet tabanlı uygulama akışları için geçerlidir. Etkinleştirildiğinde hizmet çok turlu konuşmaların geçmişini depolayabilir ve iletebilir. Bu özelliği hizmet isteği üstbilgi parametresi ile birlikte kullanmanız gerekir.

Sohbet geçmişi depolama

Yerel depolama çoklu örnek dağıtımını desteklemez. Hizmeti üretim kullanımı için dağıtıyorsanız ApsaraDB RDS gibi harici depolama kullanın. Daha fazla bilgi için bkz. Ek: Sohbet geçmişi.

Önemli

Yerel depolama kullanırsanız çoklu örnek dağıtımı desteklenmez. Tek bir örnekten birden fazla örneğe ölçek genişletme de desteklenmez. Aksi takdirde sohbet geçmişi özelliği düzgün çalışmayabilir.

İzleme Analizi: Etkinleştirildiğinde hizmet dağıtıldıktan sonra izleme ayrıntılarını görüntüleyebilir ve uygulama akışının performansını değerlendirebilirsiniz.

Roller ve izinler: Uygulama akışında Faiss vektör veritabanı (bilgi bankası yönetimi için Faiss veya Milvus vektör veritabanı seçmeniz gerekir) veya "Alibaba Cloud IQS-Standard Search" bileşeni (IQS Web Arama Sohbet Asistanı şablonu tarafından kullanılır) kullanılıyorsa gerektiğinde bir rol seçin.

Parametre ayarları hakkında daha fazla bilgi için bkz. Özel dağıtım.

Çevrimiçi hata ayıklama

Hizmeti çağırma

Çevrimiçi hata ayıklama

Hizmet başarıyla dağıtıldıktan sonra PAI-EAS konsoluna yönlendirilirsiniz. Online Debugging sekmesinde bir isteği yapılandırıp gönderebilirsiniz. İstek gövdesindeki anahtar uygulama akışının Başlangıç düğümündeki "Conversation Input" parametresinin değeriyle aynı olmalıdır. Bu konuda varsayılan alan olan question kullanılmaktadır.

image

API çağrıları

  1. Overview sekmesinden hizmet uç noktasını ve belirteci edinin.

    image

  2. Bir API isteği gönderin.

    Hizmeti temel modda veya tam modda çağırabilirsiniz. Aşağıdaki tabloda farklar açıklanmaktadır.

    Özellik

    Temel mod

    Tam mod

    İstek yolu

    <Endpoint>/

    <Endpoint>/run

    Açıklama

    Uygulama akışının çıktısını doğrudan döndürür.

    Düğüm durumu hata iletileri ve uygulama akışının çıktı iletilerini içeren karmaşık bir yapı döndürür.

    Senaryolar

    • Yalnızca uygulama akışının son çıktısına ihtiyacınız vardır ve dahili işlemeye veya duruma önem vermezsiniz.

    • Sonuçları hızlıca elde etmek için basit sorgular veya işlemler için uygundur.

    • Her düğümün durumu ve olası hata iletileri dahil olmak üzere uygulama akışının yürütme sürecini ayrıntılı olarak anlamak istersiniz.

    • Uygulama akışının yürütülmesini hata ayıklama izleme veya analiz etme amaçları için uygundur.

    Avantajlar

    Kullanımı basittir. Karmaşık yapıları ayrıştırmanıza gerek kalmaz.

    • Uygulama akışının yürütme sürecini derinlemesine anlamanıza yardımcı olacak kapsamlı bilgiler sağlar.

    • Uygulama akışının performansını sorun gidermeye ve optimize etmeye yardımcı olur.

    Temel mod

    cURL komutu

    EAS'te dağıtılan uygulama akışı hizmetleri cURL komutları kullanılarak akışlı ve akışsız çağrıları destekler. Aşağıda istek ve yanıt örnekleri verilmiştir:

    Örnek türü

    Akışlı

    Akışsız

    Örnek istek

    curl -X POST \
         -H "Authorization: Bearer <your_token>" \
         -H "Content-Type: application/json" \
         -H "Accept: text/event-stream" \
         -d '{"question": "Where is the capital of France?"}' \
         "<your_endpoint>"
    curl -X POST \
         -H "Authorization: Bearer <your_token>" \
         -H "Content-Type: application/json" \
         -d '{"question": "Where is the capital of France?"}' \
         "<your_endpoint>"

    Örnek yanıt

    event: Message
    data: {"answer": ""}
    
    event: Message
    data: {"answer": "The"}
    
    event: Message
    data: {"answer": " capital"}
    
    event: Message
    data: {"answer": " of"}
    
    event: Message
    data: {"answer": " France"}
    
    event: Message
    data: {"answer": " is"}
    
    event: Message
    data: {"answer": " Paris"}
    
    event: Message
    data: {"answer": "."}
    
    event: Message
    data: {"answer": ""}
    {"answer":"The capital of France is Paris."}

    Aşağıdaki tabloda istek parametreleri açıklanmaktadır.


    Parametre


    Açıklama


    -H "Authorization: Bearer <your_token>"


    İstek üstbilgisi. <your_token> ifadesini 1. Adım bölümünde edindiğiniz belirteçle değiştirin.


    -H "Accept: text/event-stream"


    İstemcinin Server-Sent Events (SSE) isteklerini kabul ettiğini ve yanıtın bir akış olduğunu belirtir. Not: Akışlı çağrılar yalnızca bir LLM düğümü uygulama akışının çıkış düğümü olduğunda desteklenir. Son düğüme doğrudan giriş bir LLM düğümü olmalıdır.


    -d '{"question": "Where is the capital of France?"}'


    İstek gövdesi. Soru dizesini içeren bir anahtar-değer çifti barındıran bir JSON nesnesidir. Anahtar uygulama akışının Başlangıç düğümündeki "Conversation Input" parametresiyle eşleşmelidir. Bu konuda varsayılan alan question kullanılmaktadır.


    "<your_endpoint>"


    İsteğin hedef URL'si. <your_endpoint> ifadesini 1. Adım bölümünde edindiğiniz uç nokta ile değiştirin.

    Python betiği

    Aşağıdaki örnekte requests kitaplığı kullanılarak uygulama akışı hizmetine bir POST isteğinin nasıl gönderileceği gösterilmektedir. İstek akışlı veya akışsız olabilir. Kitaplığın yüklü olduğundan emin olun. Yüklü değilse yüklemek için pip install requests komutunu çalıştırın.

    Örnek türü

    Akışlı

    Akışsız

    Örnek istek

    import requests
    import json
    
    url = "http://<your-endpoint-here>"
    token = "<your-token-here>"
    data = {"question": "Where is the capital of France?"}
    
    # Set the request header, including your token.
    headers = {
        "Authorization": f"Bearer {token}",
        "Accept": "text/event-stream",
        "Content-Type": "application/json"
    }
    
    if __name__ == '__main__':
        with requests.post(url, json=data, headers=headers, stream=True) as r:
            for line in r.iter_lines(chunk_size=1024):
                print(line)
    
    import requests
    import json
    
    url = "http://<your-endpoint-here>"
    token = "<your-token-here>"
    data = {"question": "Where is the capital of France?"}
    
    # Set the request header, including your token.
    headers = {
        "Authorization": f"Bearer {token}",
        "Content-Type": "application/json"
    }
    
    response = requests.post(url, json=data, headers=headers)
    
    if response.status_code == 200:
        print("Request successful. Response:")
        print(response.text)
    else:
        print(f"Request failed. Status code: {response.status_code}")
    

    Örnek yanıt

    event: Message
    data: {"answer": ""}
    
    event: Message
    data: {"answer": "The"}
    
    event: Message
    data: {"answer": " capital"}
    
    event: Message
    data: {"answer": " of"}
    
    event: Message
    data: {"answer": " France"}
    
    event: Message
    data: {"answer": " is"}
    
    event: Message
    data: {"answer": " Paris"}
    
    event: Message
    data: {"answer": "."}
    
    event: Message
    data: {"answer": ""}
    {"answer":"The capital of France is Paris."}

    Aşağıdaki tabloda istek parametreleri açıklanmaktadır.


    Parametre


    Açıklama


    url


    İsteğin hedef URL'si. <your-endpoint-here> ifadesini 1. Adım bölümünde edindiğiniz uç nokta ile değiştirin.


    token


    İstek üstbilgisi. <your-token-here> ifadesini 1. Adım bölümünde edindiğiniz belirteçle değiştirin.


    data


    İstek gövdesi. Soru dizesini içeren bir anahtar-değer çifti barındıran bir JSON nesnesidir. Anahtar uygulama akışının Başlangıç düğümündeki "Conversation Input" parametresiyle eşleşmelidir. Bu konuda varsayılan alan question kullanılmaktadır.


    "Accept": "text/event-stream"


    İstemcinin SSE isteklerini kabul ettiğini ve yanıtın bir akış olduğunu belirtir. Not: Akışlı çağrılar yalnızca bir LLM düğümü uygulama akışının çıkış düğümü olduğunda desteklenir. Son düğüme doğrudan giriş bir LLM düğümü olmalıdır.

    Tam mod

    LangStudio Server-Sent Events (SSE) özelliğini destekler. Bir istek gönderdiğinizde hizmet uygulama akışının yürütülmesi sırasında her düğümün durumunu hata iletilerini ve çıktı iletilerini çıkarabilir. Ayrıca olaylardaki node_run_infos içeriğini özelleştirebilirsiniz. Bu bölümde örnek olarak çevrimiçi hata ayıklama kullanılmaktadır. Uç noktaya /run eklemeniz ve ardından istek gövdesini düzenlemeniz gerekir:

    image

    Aşağıdaki tabloda istek gövdesindeki alanlar açıklanmaktadır.

    Alan

    Tür

    Varsayılan değer

    Açıklama

    inputs

    Mapping[str, Any]

    None

    Akış için giriş verileri sözlüğü. Anahtarlar akışta tanımlanan giriş alan adlarıyla eşleşmelidir. Akışın girişi yoksa bu alanı yoksayın.

    stream

    bool

    True

    Yanıt biçimini kontrol eder. Geçerli değerler:

    • True: Bir SSE akışı ile yanıt verir. Yanıt üstbilgisindeki Content-Type değeri text/event-stream şeklindedir. Veriler DataOnly biçiminde döndürülür ve RunStarted NodeUpdated RunOutput ve RunTerminated gibi farklı olaylara bölünür. Daha fazla bilgi için aşağıdaki bölümlere bakın.

    • False: Tek bir JSON nesnesi ile yanıt verir. Yanıt üstbilgisindeki Content-Type değeri application/json şeklindedir. Daha fazla bilgi için Çevrimiçi hata ayıklama bölümündeki yanıta bakın.

    response_config

    Dict[str, Any]

    -

    Stream değeri True olarak ayarlandığında akışlı yanıtta dahil edilen düğüm ayrıntılarını kontrol eder.

    ∟ include_node_description

    bool

    False

    (response_config içinde) SSE olay akışında düğüm açıklamalarının dahil edilip edilmeyeceğini belirtir.

    ∟ include_node_display_name

    bool

    False

    (response_config içinde) SSE olay akışında düğüm görünen adlarının dahil edilip edilmeyeceğini belirtir.

    ∟ include_node_output

    bool

    False

    (response_config içinde) SSE olay akışında düğüm çıktılarının dahil edilip edilmeyeceğini belirtir.

    ∟ exclude_nodes

    List[str]

    []

    (response_config içinde) SSE olay akışından hariç tutulacak düğüm adlarının listesi.

    Döndürülen veriler RunStarted NodeUpdated RunOutput ve RunTerminated gibi farklı olaylara bölünür.

    RunStarted olayı

    • Tanım: RunStarted olayı bir akış yürütmenin başlangıcını işaretler. Genellikle bir çalıştırma için SSE akışında gönderilen ilk olaydır.

    • Yük örneği:

      data: {"event": "RunStarted", "run_id": "fb745e15-3b3b-4a10-9e0d-0bea08d47411", "timestamp": "2025-06-12T08:15:07.223611Z", "flow_run_info": {"run_id": "fb745e15-3b3b-4a10-9e0d-0bea08d47411", "status": "Running", "error": null, "otel_trace_id": ""}}
    • Alan açıklamaları:


      Alan


      Tür


      Açıklama


      event


      dize


      Olay türü. Değer sabit olarak RunStarted şeklindedir.


      run_id


      dize


      Mevcut akış yürütmesi için benzersiz tanımlayıcı.


      timestamp


      dize


      Olayın zaman damgası ISO 8601 biçimindedir.


      flow_run_info


      nesne


      Tüm akış çalıştırması için nihai durum bilgilerini içerir.


      ∟ run_id


      dize


      (flow_run_info içinde) Akış yürütmesi için benzersiz tanımlayıcı. Bu dıştaki run_id ile aynıdır.


      ∟ status


      dize


      (flow_run_info içinde) Akış yürütmesinin başlangıç durumu. Değer sabit olarak Running şeklindedir.


      ∟ error


      nesne veya null


      (flow_run_info içinde) Akış yürütmesi başarısız olursa bu alan bir hata mesajı nesnesi içerir. Aksi takdirde değer null olur.


      ∟ otel_trace_id


      dize


      (flow_run_info içinde) Bu akış yürütmesiyle ilişkili OpenTelemetry izleme kimliği. Değer boş veya sıfır değeri olabilir.

    NodeUpdated olayı

    • Tanım: NodeUpdated olayı akıştaki bir veya daha fazla düğümün durumunun veya çıktısının değiştiğini belirtir. Bir akış yürütmesi sırasında bu olay genellikle bir düğüm çalışmaya başladığında (Running) veya yürütmeyi tamamladığında (Completed veya Failed) gönderilir. response_config ayarlanırsa bu olay düğüm açıklamasını görünen adı ve çıktıyı da içerebilir. Not: İsteğin response_config bölümünde exclude_nodes belirtirseniz belirtilen düğümler için NodeUpdated olayları döndürülmez.

    • Yük örneği:

      data: {"event": "NodeUpdated", "run_id": "8f92b1a6-4d69-422a-a080-50713e488b56", "timestamp": "2025-04-25T08:57:15.208601Z", "node_run_infos": [{"node_name": "custom_python", "node": "custom_python", "status": "Running", "error": null, "duration": 0.0, "description": null, "display_name": null, "output": null}]}
      data: {"event": "NodeUpdated", "run_id": "8f92b1a6-4d69-422a-a080-50713e488b56", "timestamp": "2025-04-25T08:57:15.209621Z", "node_run_infos": [{"node_name": "custom_python", "node": "custom_python", "status": "Completed", "error": null, "duration": 0.001246, "description": null, "display_name": null, "output": {"text": "echo:hello", "input_length": 2}}]}
    • Alan açıklamaları:


      Alan


      Tür


      Açıklama


      event


      dize


      Olay türü. Değer sabit olarak NodeUpdated şeklindedir.


      run_id


      dize


      Mevcut akış yürütmesi için benzersiz tanımlayıcı.


      timestamp


      dize


      Olayın zaman damgası ISO 8601 biçimindedir.


      node_run_infos


      dizi[nesne]


      Bir veya daha fazla düğüm çalıştırma bilgi nesnesi içeren bir dizi. Her nesne durumu veya çıktısı değişen bir düğümü temsil eder.


      ∟ node_name


      dize


      (node_run_infos içinde) Düğümün adı. Bu eski bir alandır ve node alanıyla aynıdır.


      ∟ node


      dize


      (node_run_infos içinde) Düğümün adı.


      ∟ status


      dize


      (node_run_infos içinde) Düğümün mevcut durumu örneğin Running Completed veya Failed.


      ∟ error


      nesne veya null


      (node_run_infos içinde) Düğüm yürütmesi başarısız olursa bu alan bir hata mesajı nesnesi içerir. Aksi takdirde değer null olur.


      ∟ duration


      kayan noktalı sayı


      (node_run_infos içinde) Düğüm yürütmesi için geçen süre saniye cinsindendir. Running durumu için değer genellikle 0,0'dır.


      ∟ description


      dize veya null


      (node_run_infos içinde) Düğümün açıklaması. Bu alan yalnızca istekte response_config.include_node_description değeri true olarak ayarlandığında dahil edilir. Aksi takdirde değer null olur.


      ∟ display_name


      dize veya null


      (node_run_infos içinde) Düğümün görünen adı. Bu alan yalnızca istekte response_config.include_node_display_name değeri true olarak ayarlandığında dahil edilir. Aksi takdirde değer null olur.


      ∟ output


      nesne veya null


      (node_run_infos içinde) Düğümün çıktı verileri. Bu alan yalnızca düğüm durumu Completed olduğunda ve istekte response_config.include_node_output değeri true olarak ayarlandığında dahil edilir. Aksi takdirde değer null olur.

    RunOutput olayı

    • Tanım: RunOutput olayı akış yürütmesinin nihai çıktısını ürettiğini belirtir. Genellikle akış çalıştırmasının sonunda RunTerminated olayından önce gerçekleşir.

    • Yük örneği:

      data: {"event": "RunOutput", "run_id": "4c185c72-1bb0-4beb-a288-f7a73e37fc3b_llm_3ce063ad-bc9b-417d-9e68-08ce92c3db1b", "timestamp": "2025-04-30T11:55:24.745130Z", "outputs": {"answer": "What can"}, "output_metadata": {"answer": {"is_stream": true, "status": "Streaming"}}}
      
      data: {"event": "RunOutput", "run_id": "4c185c72-1bb0-4beb-a288-f7a73e37fc3b_llm_3ce063ad-bc9b-417d-9e68-08ce92c3db1b", "timestamp": "2025-04-30T11:55:24.829133Z", "outputs": {"answer": " I help you with?"}, "output_metadata": {"answer": {"is_stream": true, "status": "Streaming"}}}
      
      data: {"event": "RunOutput", "run_id": "4c185c72-1bb0-4beb-a288-f7a73e37fc3b_llm_3ce063ad-bc9b-417d-9e68-08ce92c3db1b", "timestamp": "2025-04-30T11:55:24.950055Z", "outputs": {"answer": ""}, "output_metadata": {"answer": {"is_stream": true, "status": "Streaming"}}}
      
      data: {"event": "RunOutput", "run_id": "4c185c72-1bb0-4beb-a288-f7a73e37fc3b_llm_3ce063ad-bc9b-417d-9e68-08ce92c3db1b", "timestamp": "2025-04-30T11:55:24.954983Z", "outputs": {}, "output_metadata": {"answer": {"is_stream": true, "status": "Finished"}}}
      
      data: {"event": "RunOutput", "run_id": "4c185c72-1bb0-4beb-a288-f7a73e37fc3b_python_oHG7_1c9fb0ac-0f45-4dbc-bf97-8e4175fd991c", "timestamp": "2025-04-30T11:55:24.957091Z", "outputs": {"python_output": "Hello: Hello! What can I help you with?"}, "output_metadata": {"python_output": {"is_stream": false, "status": "Finished"}}}
    • Alan açıklamaları:


      Alan


      Tür


      Açıklama


      event


      dize


      Olay türü. Değer sabit olarak RunOutput şeklindedir.


      run_id


      dize


      Mevcut akış yürütmesi için benzersiz tanımlayıcı.


      timestamp


      dize


      Olayın zaman damgası ISO 8601 biçimindedir.


      outputs


      nesne


      Akışın nihai çıktısını içeren bir sözlük. Yapı akış tasarımında tanımlanan çıktılara bağlıdır.


      output_metadata


      nesne


      Akışın çıktı meta verilerini içeren bir sözlük. Anahtarlar outputs içindeki anahtarlara karşılık gelen çıktı adlarıdır. Değerler is_stream ve status gibi çıktı meta verilerini içeren nesnelerdir.

    RunTerminated olayı

    • Tanım: RunTerminated olayı bir akış yürütmesinin sonunu işaretler. Genellikle bir çalıştırma için SSE akışında gönderilen son olaydır.

    • Yük örneği:

      data: {"event": "RunTerminated", "run_id": "8f92b1a6-4d69-422a-a080-50713e488b56", "timestamp": "2025-04-25T08:57:15.212791Z", "flow_run_info": {"run_id": "8f92b1a6-4d69-422a-a080-50713e488b56", "status": "Completed", "error": null, "otel_trace_id": "0x00000000000000000000000000000000"}}
    • Alan açıklamaları:


      Alan adı


      Tür


      Açıklama


      event


      dize


      Olay türü RunTerminate olarak ayarlanır.


      run_id


      dize


      Mevcut akış yürütmesi için benzersiz tanımlayıcı.


      timestamp


      dize


      Olayın zaman damgası ISO 8601 biçimindedir.


      flow_run_info


      nesne


      Tüm akış çalıştırması için nihai durum bilgilerini içerir.


      ∟ run_id


      dize


      (flow_run_info içinde) Akış yürütmesi için benzersiz tanımlayıcı. Bu dıştaki run_id ile aynıdır.


      ∟ status


      dize


      (flow_run_info içinde) Akış yürütmesinin nihai durumu örneğin Completed Failed veya Canceled.


      ∟ error


      nesne veya null


      (flow_run_info içinde) Akış yürütmesi başarısız olursa bu alan bir hata mesajı nesnesi içerir. Aksi takdirde değer null olur.


      ∟ otel_trace_id


      dize


      (flow_run_info içinde) Bu akış yürütmesiyle ilişkili OpenTelemetry izleme kimliği. Değer boş veya sıfır değeri olabilir.

OpenAI uyumlu çağrılar

Dağıtılan bir sohbet uygulama akışı veya ChatFlow OpenAI uyumlu çağrıları destekler. Hizmet OpenAI'yi destekleyen diğer istemciler tarafından da kullanılabilir.

OpenAI API'sini kullanma

Bu bölümde cURL komutu kullanılarak yapılan bir akışlı çağrı örneği sunulmaktadır. Aşağıda istek ve yanıt örnekleri verilmiştir:

Örnek istek:

curl --location '<Endpoint>/v1/chat/completions' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
    "model": "default",  
    "messages": [
        {
            "role": "system",
            "content": "You are a helpful assistant."
        },
        {
            "role": "user", 
            "content": "Who are you?"
        }
    ],
    "stream":true
}'

Aşağıdaki tabloda istek parametreleri açıklanmaktadır.


Parametre


Açıklama


--location '<Endpoint>/v1/chat/completions'


İsteğin hedef URL'si. <Endpoint> ifadesini API çağrılarının 1. Adımı bölümünde edindiğiniz uç nokta ile değiştirin.


--header "Authorization: Bearer $DASHSCOPE_API_KEY"


İstek üstbilgisi. $DASHSCOPE_API_KEY ifadesini API çağrılarının 1. Adımı bölümünde edindiğiniz belirteçle değiştirin.


"model": "default"


Model adı. Değer sabit olarak default şeklindedir.


"stream":true


Yanıtın bir akış olup olmadığını belirtir. Not: Akışlı çağrılar yalnızca bir LLM düğümü uygulama akışının çıkış düğümü olduğunda desteklenir. Son düğüme doğrudan giriş bir LLM düğümü olmalıdır.

Örnek yanıt:

data: {"choices":[{"delta":{"content":"","role":"assistant"},"index":0,"logprobs":null,"finish_reason":null}],"object":"chat.completion.chunk","usage":null,"created":1715931028,"system_fingerprint":null,"model":"qwen-plus","id":"chatcmpl-3bb05cf5cd819fbca5f0b8d67a025022"}

data: {"choices":[{"finish_reason":null,"delta":{"content":"I am"},"index":0,"logprobs":null}],"object":"chat.completion.chunk","usage":null,"created":1715931028,"system_fingerprint":null,"model":"qwen-plus","id":"chatcmpl-3bb05cf5cd819fbca5f0b8d67a025022"}

data: {"choices":[{"delta":{"content":"a large"},"finish_reason":null,"index":0,"logprobs":null}],"object":"chat.completion.chunk","usage":null,"created":1715931028,"system_fingerprint":null,"model":"qwen-plus","id":"chatcmpl-3bb05cf5cd819fbca5f0b8d67a025022"}

data: {"choices":[{"delta":{"content":"language model"},"finish_reason":null,"index":0,"logprobs":null}],"object":"chat.completion.chunk","usage":null,"created":1715931028,"system_fingerprint":null,"model":"qwen-plus","id":"chatcmpl-3bb05cf5cd819fbca5f0b8d67a025022"}

data: {"choices":[{"delta":{"content":"created by Alibaba Cloud"},"finish_reason":null,"index":0,"logprobs":null}],"object":"chat.completion.chunk","usage":null,"created":1715931028,"system_fingerprint":null,"model":"qwen-plus","id":"chatcmpl-3bb05cf5cd819fbca5f0b8d67a025022"}

data: {"choices":[{"delta":{"content":". I am called Qwen."},"finish_reason":null,"index":0,"logprobs":null}],"object":"chat.completion.chunk","usage":null,"created":1715931028,"system_fingerprint":null,"model":"qwen-plus","id":"chatcmpl-3bb05cf5cd819fbca5f0b8d67a025022"}

data: {"choices":[{"delta":{"content":""},"finish_reason":"stop","index":0,"logprobs":null}],"object":"chat.completion.chunk","usage":null,"created":1715931028,"system_fingerprint":null,"model":"qwen-plus","id":"chatcmpl-3bb05cf5cd819fbca5f0b8d67a025022"}

data: [DONE]

Diğer istemci uygulamalarıyla entegrasyon

Bu bölümde Windows platformundaki ChatBox v1.13.4 uygulaması örnek olarak kullanılmaktadır.

  1. Chatbox uygulamasını indirin ve yükleyin.

  2. ChatBox'u açın ve Model Provider Name gibi bir model sağlayıcı adı yapılandırın.

    image

  3. Yapılandırılan model sağlayıcıyı seçin ve hizmet istek parametrelerini yapılandırın.

    image

    Aşağıdaki tabloda ana parametreler açıklanmaktadır.


    Parametre


    Açıklama


    API Mode


    Değer sabit olarak OpenAI API Compatible şeklindedir.


    API Key


    Dağıtılan LangStudio hizmetinin belirteci. Belirteci edinme hakkında daha fazla bilgi için bkz. API çağrılarının 1. Adımı.


    API Host


    Dağıtılan LangStudio hizmetinin uç noktası. Uç noktayı edinme hakkında daha fazla bilgi için bkz. API çağrılarının 1. Adımı. Uç noktanın sonuna /v1 sonekini ekleyin. Bu konuda İnternet uç noktası örnek olarak kullanılmaktadır. API host değeri http://langstudio-20250319153409-xdcp.115770327099****.cn-hangzhou.pai-eas.aliyuncs.com/v1 olarak ayarlanır.


    API Path


    Değer sabit olarak /chat/completions şeklindedir.


    Model


    New öğesine tıklayın ve qwen3-8b gibi özel bir model ID girin.

  4. Sohbet iletişim kutusunda dağıtılan LangStudio hizmetini çağırın.

    image

İzlemeleri görüntüleme

Hizmeti çağırdıktan sonra otomatik olarak bir izleme oluşturulur. Tracing Analysis sekmesinde görüntülemek istediğiniz izlemeyi bulun ve uygulama akışının performansını değerlendirmek için Actions sütunundaki View Trace öğesine tıklayın.

image

İzleme verileri vektör veritabanından alınan alma sonuçları veya LLM düğümünün girdi ve çıktısı gibi uygulama akışındaki her düğümün girdi ve çıktısını görüntülemenize olanak tanır.

Ek: Sohbet geçmişi

Sohbet tabanlı uygulama akışları için LangStudio çok turlu konuşmaların geçmişini depolama özelliği sağlar. Sohbet geçmişini kaydetmek için yerel depolama veya harici depolama kullanabilirsiniz.

Depolama türleri

  • Yerel depolama: Hizmet uygulama akışının dağıtıldığı EAS örneğinde chat_history.db adlı bir SQLite veritabanını otomatik olarak oluşturmak için yerel diski kullanır. Bu veritabanı sohbet geçmişini kaydeder. Varsayılan depolama yolu /langstudio/flow/ şeklindedir. Not: Yerel depolama çoklu örnek dağıtımını desteklemez. Yerel disk kullanımını düzenli olarak kontrol etmelisiniz. Sohbet geçmişi verilerini sorgulamak ve silmek için sağlanan API işlemlerini de kullanabilirsiniz. EAS örneği kaldırıldığında ilgili sohbet geçmişi de silinir.

  • Harici depolama: ApsaraDB RDS for MySQL desteklenir. Hizmeti dağıtırken sohbet geçmişini depolamak için bir ApsaraDB RDS for MySQL örneğine bağlantı yapılandırmanız gerekir. Yapılandırma hakkında daha fazla bilgi için bkz. Veritabanı bağlantısı yapılandırması. Hizmet yapılandırılan ApsaraDB RDS for MySQL veritabanında hizmet adını sonek olarak kullanan tabloları otomatik olarak oluşturur. Örneğin langstudio_chat_session_<service_name> tablosu sohbet oturumlarını saklar ve langstudio_chat_history_<service_name> tablosu sohbet geçmişi iletilerini saklar.

Oturum ve kullanıcı desteği

Uygulama akışı hizmetine yapılan her sohbet isteği durumu korumaz (stateless). Birden fazla isteğin aynı konuşma olarak ele alınmasını istiyorsanız istek üstbilgisini manuel olarak yapılandırmanız gerekir. API çağrıları yapma hakkında daha fazla bilgi için bkz. API çağrıları.


İstek üstbilgisi


Veri türü


Açıklama


Notlar


Chat-Session-Id


Dize


Oturum kimliği. Her hizmet isteği için sistem oturumu diğerlerinden ayırt etmek amacıyla benzersiz bir tanımlayıcı otomatik olarak atar. Kimlik yanıt üstbilgisinin Chat-Session-Id alanında döndürülür.


Özel bir oturum kimliği kullanabilirsiniz. Benzersizliği sağlamak için oturum kimliği 32 ila 255 karakter uzunluğunda olmalı ve büyük harf küçük harf rakam alt çizgi (_) kısa çizgi (-) ve iki nokta (:) içerebilir.


Chat-User-Id


Dize


Kullanıcı kimliği. Sohbete ait olan kullanıcıyı tanımlar. Sistem otomatik olarak bir kullanıcı kimliği atamaz. Özel bir kullanıcı kimliği kullanabilirsiniz.


-

Sohbet geçmişi API'si

Uygulama akışı hizmeti ayrıca sohbet geçmişi verilerini yönetmek için API işlemleri sağlar. Bu API işlemlerini verileri görüntülemek ve silmek için kullanabilirsiniz. Tam API şemasını almak için {Endpoint}/openapi.json adresine bir GET isteği gönderin. Şema Swagger standardına dayanır. Bu API işlemlerini daha iyi anlamak ve keşfetmek için görselleştirme amacıyla Swagger UI kullanabilirsiniz. Bu işlemleri basitleştirir ve netliği artırır.