paint-brush
LangServe ve MinIO Entegrasyonu ile LangChain API'lerini Zahmetsizce Başlatınile@minio
5,582 okumalar
5,582 okumalar

LangServe ve MinIO Entegrasyonu ile LangChain API'lerini Zahmetsizce Başlatın

ile MinIO15m2024/06/21
Read on Terminal Reader

Çok uzun; Okumak

Bu makalede, "Langchain Aracılarını MinIO ile Güçlendirme" bölümünde ele alınan konseptler üzerine inşa edeceğiz. Ek yetenekleri kapsüllemek ve özel aracıyı LangServe aracılığıyla dağıtmak için bir MinIO aracısının işlevselliğini genişleteceğiz. Aşağıdaki adımlarda MinIO'yu LangChain ile entegre etme sürecine daha derinlemesine bakacağız.
featured image - LangServe ve MinIO Entegrasyonu ile LangChain API'lerini Zahmetsizce Başlatın
MinIO HackerNoon profile picture
0-item
1-item
2-item


LangChain'in yenilikçi dünyasındaki yolculuğumuz, onun veri yönetimi ve uygulama işlevselliğini dönüştürme konusundaki önemli yeteneklerini ortaya çıkardı.


Önceki tartışmalarda LangChain'in karmaşık yeteneklerini keşfederken çeşitli konulara değindik. Bu makalede, ek yetenekleri kapsüllemek ve özel aracıyı LangServe aracılığıyla dağıtmak için bir MinIO aracısının işlevselliğini genişletirken, "Langchain Aracılarını MinIO ile Güçlendirme" bölümünde ele alınan konseptler üzerine inşa edeceğiz.


  • LangChain ile Yenilikçi S3 Kova Erişimi : LangChain'in S3 Yükleyicilerinden ve OpenAI API'sinden yararlanarak özel konuşma yapay zeka aracıları oluşturmak ve veri yönetimi için kolaylaştırılmış bir yaklaşım oluşturmak için izlenecek yol.


  • LangChain Temsilcilerini MinIO ile Güçlendirmek : LangChain'in OpenAI'nin GPT'si ile birleştiğinde yapay zeka ve makine öğrenimi veri işlemede nasıl yeni sınırlara öncülük ettiğini gösteren MinIO'lardan yararlanmaya yönelik derinlemesine bir inceleme.


Bu içgörülere dayanarak şimdi odak noktamızı şuna çeviriyoruz: LangServe LangChain uygulamalarının geliştirmeden dağıtıma geçişinde önemli bir araç olan, üretime hazır API'lerin başlatılması sürecini basitleştiren önemli bir araçtır.

LangServe: LangChain Uygulamalarının Dağıtımını Basitleştirme

LangServe geliştiriciler için bir mihenk taşı görevi görüyor ve geleneksel olarak API dağıtımıyla ilişkili karmaşıklıkları ortadan kaldırıyor. MinIO ile entegre LangChain uygulamalarının erişilebilir, kullanıcı dostu API'lere sorunsuz geçişini sağlar. LangServe dağıtım ortamını şu şekilde yeniden tanımlıyor:


  • Otomatik API Uç Noktası Oluşturma: LangServe'in otomasyon yetenekleri, gerekli API uç noktalarını zahmetsizce oluşturarak geliştirme çabalarını kolaylaştırır ve dağıtım süresini önemli ölçüde azaltır.


  • Şema Oluşturma ve Doğrulama: Akıllı şema çıkarımıyla LangServe, API'lerin iyi tanımlanmış arayüzler sunmasını sağlayarak daha kolay entegrasyonu ve kusursuz bir kullanıcı deneyimini kolaylaştırır.


  • Özelleştirilebilir Uç Nokta Yapılandırması: LangServe, senkronize işlemlerden gerçek zamanlı güncellemelere kadar çeşitli uygulama ihtiyaçlarına uyacak çeşitli uç noktalar sunarak geliştiricilere benzersiz bir esneklik sağlar.


  • Zahmetsiz Entegrasyon: Belki de en ilgi çekici özelliği olan LangServe'in mevcut LangChain koduyla sorunsuz bir şekilde entegre olma yeteneği, geliştiricilerin önemli değişiklikler olmadan mevcut kod tabanlarından ve uzmanlıklarından yararlanabilecekleri anlamına gelir.


LangServe/FastAPI Uygulaması /docs'un otomatik olarak oluşturulan belgeleri

LangChain ve Langserve'nin derinliklerine dalmak

Aşağıdaki adımlarda MinIO'yu LangChain ile entegre etme sürecine daha derinlemesine bakacağız.


  1. langchain-cli ile bir LangChain Uygulaması oluşturun.
  2. agent.py dosyasında özel bir LangChain aracısı geliştirin.
  3. LangServe API'si olarak çalıştırmak için aracımızı server.py uygulayın.

Uygulama Oluşturmak için LangChain'in Komut Satırı Arayüzünü Kullanma

LangChain uygulamalarını LangServe ile dağıtmak, karmaşık AI işlevleri ile RESTful API'ye maruz kalma arasındaki boşluğu dolduran kusursuz bir entegrasyon yolculuğu getirir, geliştiricilerin LangChain yeteneklerinin tüm yelpazesini verimli bir şekilde kullanmalarına olanak tanır ve günümüzün hızlı dijital ortamında akıllı uygulamaların dağıtımı için yeni bir standart belirler. .


LangChain, langchain-cli kullanarak uygulama oluşturmanın kullanışlı ve basit bir yöntemini sunar kütüphane pip ile kurulabilir. Bu paket, kullanıcıların mevcut uygulamaları kullanarak kolayca yeni uygulamalar oluşturmasına olanak tanıyan bir arayüz sağlar. LangChain uygulama şablonları veya kendinizinkini yaratın.


Not: Gerekli tüm dosyalar “minio-langserve-deployment ” adlı dizin altındaki MinIO “blog-assets” deposunda bulunmaktadır.


Yeni bir LangChain uygulaması oluşturmak için sanal bir ortam oluşturmak ve langchain-cli paketini kurmak için aşağıdaki komutlarla başlayabiliriz:


 mkdir minio-langserve-testing cd minio-Langserve-testing python -m venv .myenv source .myenv/bin/activate pip install langchain-cli 


langchain-cli'in ekran görüntüsü


langchain-cli kullanarak yeni bir uygulama oluşturmak için terminalimizde langchain yazabiliriz, my-app adında yeni bir uygulama dizini oluşturmak için aşağıdaki komutu yazıyoruz.


 langchain app new my-app


Yukarıdaki komutlarla oluşturulan langchain uygulaması, geliştirme için tutarlı bir ortam yaratarak tüm ağır işleri yapar. Yeni bir LangChain uygulamasının yapısı doğrudan şuna benzer:


 ./my-app ├── Dockerfile ├── README.md ├── app │ ├── __init__.py │ └── server.py ⇐ (This is where we will import our agent into) ├── packages ⇐ (This directory is where we will write our agent) │ └── README.md └── pyproject.toml


Sonraki adımlarda, package/agent.py adında yeni bir dosya yazıp app/server.py dosyasında değişiklikler yaparak yeni oluşturulan LangChain uygulamasında ( my-app ) değişiklikler yapacağız.


Bu makalede ele alacağımız dosyalar şunlardır:


  • my-app/packages/agent.py
  • my-app/app/server.py

LangServe ile Dağıtılacak bir LangChain MinIO Aracısı Geliştirme

MinIO ile entegre bir LangChain aracısının LangServe ile dağıtımını göstermek için, aracı zinciri kodunu agent.py kaydederek başlayacağız.


Öncelikle "play.min.io:443" genel sunucusuna bağlanan bir minio_client başlatalım. Bu dosya sonunda LangChain'in agent_executor çağıracak ve onu LangServe'in add_route sarmalayıcısına aktarmamıza olanak tanıyacak.


Not: Önceki yayının okunması " MinIO Lang Zinciri Aracı ", LangChain ve MinIO ile birlikte geliştirme konusunda değerli bilgiler sağlayacaktır. Benzer bir kavramsal yaklaşımı takip edeceğiz ancak ek MinIO araç mantığıyla.


Başlamak için bir metin düzenleyici kullanarak Agent.py dosyasını açın:


 sudo nano packages/agent.py


Dosyanın başında os , io , minio ve ChatOpenAI gibi gerekli paketleri içe aktarın:


 import os import io from minio import Minio from minio.error import S3Error from langchain_openai import ChatOpenAI os.environ["OPENAI_API_KEY"] = "<<Your API Key Here>>" # Initialize llm llm = ChatOpenAI(api_key=os.environ["OPENAI_API_KEY"]) # Initialize MinIO client minio_client = Minio('play.min.io:443', access_key='minioadmin', secret_key='minioadmin', secure=True)


Bu kod parçasında gerekli paketleri içe aktarıyoruz ve OPENAI_API_KEY ortam değişkeninde saklanan OpenAI API anahtarı ile ChatOpenAI dil modelini başlatıyoruz. Ayrıca "play.min.io" genel sunucusuna gerekli bağlantı detaylarını sağlayarak minio_client'i başlatıyoruz.


Daha sonra MinIO paketini tanımlayalım ve mevcut değilse oluşturalım:


 # This variable will check if bucket exists bucket_name = "test" try: # Check if bucket exists if not minio_client.bucket_exists(bucket_name): # Create the bucket because it does not exist minio_client.make_bucket(bucket_name) print(f"Bucket '{bucket_name}' created successfully.") else: print(f"Bucket '{bucket_name}' already exists.") except S3Error as err: print(f"Error encountered: {err}")


Burada bucket_name "test" olarak tanımlıyoruz ve minio_client.bucket_exists() yöntemini kullanarak zaten var olup olmadığını kontrol ediyoruz. Kova mevcut değilse minio_client.make_bucket() kullanarak oluştururuz. Paket zaten mevcutsa bunu belirten bir mesaj yazdırırız. Ayrıca, işlem sırasında oluşabilecek herhangi bir S3Error yakalamak ve yazdırmak için try-hariç bloğu kullanarak hata işlemeyi de dahil ediyoruz.


Temel kurulum tamamlandıktan sonra artık MinIO araç işlevlerini tanımlamaya ve sonraki adımlarda ele alacağımız aracı yürütücüyü oluşturmaya devam edebiliriz.

Ajan Araçları için LangChain'in Fonksiyon Dekoratörünü Kullanmak

Langchain ve Langserve, mantık ve işlevselliğin kapsüllenmesine benzer bir yaklaşım sunarak bunun aracı ve zincir mantığına kusursuz bir şekilde entegre edilmesini sağlar. Bu, tanımlanmış işlevin içinde, işlevleri yapay zeka aracısı tarafından kullanılabilen ve yorumlanabilen yeniden kullanılabilir bileşenler olarak işaretleyen ayrıntılı bir belge dizisine sahip @tool dekoratörünün kullanılmasıyla gerçekleştirilir.


Sağlanan kod örneklerine daha yakından bakalım:


 from langchain.agents import tool @tool def upload_file_to_minio(bucket_name: str, object_name: str, data_bytes: bytes): """ Uploads a file to MinIO. Parameters: bucket_name (str): The name of the bucket. object_name (str): The name of the object to create in the bucket. data_bytes (bytes): The raw bytes of the file to upload. """ data_stream = io.BytesIO(data_bytes) minio_client.put_object(bucket_name, object_name, data_stream, length=len(data_bytes)) return f"File {object_name} uploaded successfully to bucket {bucket_name}."


upload_file_to_minio işlevi, yeniden kullanılabilir bir bileşen olduğunu belirten @tool ile süslenmiştir. Bir dosyayı MinIO paketine yüklemek için paket adı, nesne adı ve dosyanın ham baytları gibi gerekli parametreleri alır. İşlev, dosya yükleme işlemini gerçekleştirmek için minio_client kullanır ve tamamlandığında bir başarı mesajı döndürür.


 @tool def download_file_from_minio(file_info): """ Custom function to download a file from MinIO. Expects file_info dict with 'bucket_name', 'object_name', and 'save_path' keys. 'save_path' should be the local path where the file will be saved. """ bucket_name = file_info['bucket_name'] object_name = file_info['object_name'] save_path = file_info['save_path'] minio_client.get_object(bucket_name, object_name, save_path)


Benzer şekilde download_file_from_minio işlevi de @tool ile işaretlenmiştir. Bir MinIO paketinden bir dosyayı indirmek için paket adı, nesne adı ve dosyanın kaydedilmesi gereken yerel yol gibi gerekli bilgileri içeren bir file_info sözlüğü bekler. İşlev, nesneyi belirtilen gruptan almak ve belirlenen yerel yola kaydetmek için minio_client kullanır.


 @tool def list_objects_in_minio_bucket(file_info): """ Custom function to list objects in a MinIO bucket. Expects file_info dict with 'bucket_name' key. Returns a list of dictionaries containing 'ObjectKey' and 'Size' keys. """ bucket_name = file_info['bucket_name'] response = minio_client.list_objects(bucket_name) return [{'ObjectKey': obj.object_name, 'Size': obj.size} for obj in response.items]


Yine @tool ile donatılmış list_objects_in_minio_bucket işlevi, bir MinIO kümesinde bulunan nesnelerin listelenmesinden sorumludur. bucket_name anahtarına sahip bir file_info sözlüğü bekler. İşlev, belirtilen gruptaki nesnelerin listesini almak için minio_client kullanır ve her nesne için nesne anahtarını ve boyutunu içeren sözlüklerin bir listesini döndürür.


Langchain ve Langserve, bu işlevleri araçlar olarak kapsayarak, yapay zeka aracısının bunları kendi mantığına ve karar verme sürecine sorunsuz bir şekilde dahil etmesini sağlar. Aracı, elindeki göreve göre uygun aracı akıllıca seçip çalıştırabilir, yeteneklerini geliştirebilir ve MinIO depolama sistemiyle daha karmaşık ve dinamik etkileşimlere olanak tanıyabilir.

LangChain'in Çalıştırılabilir Yöntemini Anlamak

LangChain, özel mantıkla inşa etmek için sayısız yöntem sunar; bu yaklaşımlardan biri de " çalıştırılabilirler ”. Yukarıdaki tanıtıcı mantığa gelince, LangChain tarafından sağlanan ve işlevlerin AI aracısının mantığı içinde yürütülebilir birimler olarak ele alınmasına izin veren bir yapı olan RunnableLambda .


 from langchain_core.runnables import RunnableLambda upload_file_runnable = RunnableLambda(upload_file_to_minio) download_file_runnable = RunnableLambda(download_file_from_minio) list_objects_runnable = RunnableLambda(list_objects_in_minio_bucket)


Araç fonksiyonlarını RunnableLambda ile sararak, aracı tarafından yürütülmesi sırasında çağrılabilecek çalıştırılabilir örnekler ( upload_file_runnable , download_file_runnable ve list_objects_runnable ) oluştururuz. Bu çalıştırılabilirler, karşılık gelen araç işlevlerini kapsar ve aracının bunlarla etkileşime girmesi için tek tip bir arayüz sağlar.


 tools = [upload_file_to_minio, download_file_from_minio, list_objects_in_minio_bucket] llm_with_tools = llm.bind_tools(tools)


Araçlar listesi, aracının yetenekleri için yapı taşları görevi gören orijinal araç işlevlerini ( upload_file_to_minio , download_file_from_minio ve list_objects_in_minio_bucket ) içerir. llm.bind_tools(tools) satırı, araçları dil modeline ( llm ) bağlayarak modelin muhakeme yetenekleri ile araçlar tarafından sağlanan belirli işlevler arasında bir bağlantı kurar. Ortaya çıkan llm_with_tools bağlı araçları kullanma bilgisi ve yeteneği ile geliştirilmiş dil modelini temsil eder.


RunnableLambda kullanımı ve araçların dil modeline bağlanması, LangChain ve LangServe'nin güçlü ve özelleştirilebilir yapay zeka aracıları oluşturmadaki esnekliğini ve genişletilebilirliğini göstermektedir. Yapay zeka aracısı, dil modelinin gücünü araçlarda yer alan belirli işlevlerle birleştirerek, dosyaları MinIO'ya yüklemek, MinIO'dan dosya indirmek ve bir MinIO kümesindeki nesneleri listelemek gibi karmaşık görevleri gerçekleştirme yeteneği kazanır.

Temsilcimize Yol Gösterecek Bir Bilgi İstemi Şablonu Yazma

Daha sonra odak noktamızı, yapay zeka aracısına kullanıcı girdilerini anlama ve yanıt verme konusunda rehberlik eden bilgi istemi şablonuna kaydırıyoruz. Rolü ve mesaj içeriğini içeren demetler olarak temsil edilen mesajların bir listesini alan ChatPromptTemplate.from_messages() yöntemi kullanılarak tanımlanır.


 from langchain_core.prompts import ChatPromptTemplate, MessagesPlaceholder from langchain.agents.format_scratchpad.openai_tools import format_to_openai_tool_messages from langchain.agents.output_parsers.openai_tools import OpenAIToolsAgentOutputParser from langchain_core.messages import AIMessage, HumanMessage prompt_template = ChatPromptTemplate.from_messages([ ("system", "You are a powerful assistant equipped with file management capabilities."), ("user", "{input}"), MessagesPlaceholder(variable_name="agent_scratchpad"), ])



İstem üç mesajdan oluşur:


  1. Dosya yönetimi yeteneklerine sahip güçlü bir asistan olarak AI aracısının bağlamını belirleyen bir "sistem" mesajı.


  2. {input} yer tutucusunu kullanan, kullanıcının girişini temsil eden bir "kullanıcı" mesajı.


  3. Aracının ara adımlarını ve düşünce sürecini depolamak için "agent_scratchpad" adlı bir MessagesPlaceholder .


format_to_openai_tool_messages işlevi, aracının karalama defterini OpenAI araçları için uyumlu bir formatta formatlarken, OpenAIToolsAgentOutputParser sınıfı, modelin yanıtını aracı tarafından yorumlanabilen yapılandırılmış bir formata ayrıştırır.


AIMessage ve HumanMessage sınıfları, aracı ile kullanıcı arasında alınıp verilen mesajları temsil ederek, aracının mantığı dahilinde iletişimi yönetmek için standartlaştırılmış bir yol sağlar.


Bilgi istemi şablonunu tanımlayarak, görevi çözerken ara adımlarını ve düşünce sürecini takip etmek için "agent_scratchpad" yer tutucusunu kullanarak yapay zeka aracısına kullanıcı girdilerini anlaması ve yanıt vermesi için net bir yapı ve bağlam sağlıyoruz.

Aracıyı Araçları ile Tanımlama

Son olarak, agent.py dosyamızı tamamlamak için aracımızı tanımlıyoruz ve LangServe kütüphanesindeki add_route fonksiyonunu kullanarak bir server.py betiğinden içe aktarılabilen ve çağrılabilen bir AgentExecutor oluşturuyoruz.


Gerekli bileşenleri başlatıyoruz ve tek bir etmen değişkeni oluşturmak için bunları birbirine zincirliyoruz.


 agent = ( { "input": lambda x: x["input"], "agent_scratchpad": lambda x: format_to_openai_tool_messages(x["intermediate_steps"]), } | prompt_template | llm_with_tools | OpenAIToolsAgentOutputParser() )


Aracı, sözlüklerin ve zincirleme işlemlerin bir kombinasyonu kullanılarak tanımlanır. Giriş anahtarı, kullanıcı girdisini gelen verilerden ayıklarken, agent_scratchpad anahtarı, format_to_openai_tool_messages işlevini kullanarak aracının düşünce sürecinin ara adımlarını biçimlendirir. Aracı ayrıca bilgi istemi şablonunu ( prompt_template ), araçlarla birlikte dil modelini ( llm_with_tools ) ve çıktı ayrıştırıcısını ( OpenAIToolsAgentOutputParser() ) içerir.

Agent'ı Çalıştırmak için AgentExecutor Tanımlama

Bir AgentExecutor oluşturmak için, ona tanımlanmış aracıyı, mevcut araçları sağlarız ve ayrıntılı çıktı için verbose=True ayarını yaparız.


 from langchain.agents import tool, AgentExecutor agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True)


AgentExecutor görevi anlamak ve kullanıcının girdisine göre uygun aracı seçmek için sağlanan aracıyı ve araçları kullanır. Aracı, her araç için ayrı istemlere sahip olmak yerine, verilen girdiye dayalı olarak araçların nasıl kullanılacağı konusunda kendisine rehberlik eden tek bir bilgi istemi şablonu kullanır. Aracı, yürütme süreci sırasında uygun aracı dinamik olarak seçer.

AgentExecutor'umuzla LangServe Rotasını Tanımlama

Uygulamamızı LangServe ile entegre ederek ayarlamak, LangChain uygulamalarımızı API'ler olarak dağıtmak ve yönetmek için basit bir yol sağlar. FastAPI, performansı ve kullanım kolaylığı, eşzamansız işlemleri desteklemesi ve API belgelerini otomatik olarak oluşturması nedeniyle seçilmiştir.


LangServe kütüphanesi FastAPI ile oluşturulan , LangChain nesnelerinin REST API'leri olarak dağıtımını basitleştirerek bunu zenginleştirir ve API'mizin farklı alanlardan güvenli bir şekilde çağrılmasını sağlamak için CORS ayarları için yerleşik ara yazılım sunar.


Daha ayrıntılı/kullanım durumu gösterileri için şu adresi ziyaret ederek incelenebilir: langchain-ai/langserve GitHub deposu altında örnekler dizini .


 from fastapi import FastAPI app = FastAPI( title="MinIO Agent API", version="1.0", description="A conversational agent facilitating data storage and retrieval with MinIO", )


CORS başlıklarını ayarlamak için güvenliğimizi artırmak amacıyla aşağıdaki satırları ekleyebiliriz:


 from fastapi.middleware.cors import CORSMiddleware # Set all CORS enabled origins app.add_middleware( CORSMiddleware, allow_origins=["*"], allow_credentials=True, allow_methods=["*"], allow_headers=["*"], expose_headers=["*"], )

Agent'ı LangServe kullanarak uygulamak

Artık packages/agent.py ile işimiz bittiğine göre onu içe aktarabilir ve app/server.py betiğimizdeki LangServe kütüphanesindeki add_route fonksiyonunu kullanabiliriz.


 from packages.agent import agent_executor from langserve import add_routes add_routes( app, agent_executor.with_types(input_type=Input, output_type=Output).with_config( {"run_name": "agent"} ), path=”/invoke” )


add_route(app, agent_executor(…), path="/invoke") çağırarak, sunucu uygulamamıza ( app ), /invoke yolunu agent_executor() işlevine eşleyen bir rota ekliyoruz. Bu, /invoke uç noktasına bir istek yapıldığında aracı yürütücünün çağrılmasına olanak tanır.


Bu kurulumla sunucu, gelen istekleri işleyebilir, bunları aracı yürütücüye iletebilir ve aracının yanıtını istemciye geri gönderebilir. Aracı yürütücü, kullanıcı girişini işlemek ve mevcut araçlara dayalı olarak uygun bir yanıt oluşturmak için bilgi istemi şablonunu, araçlarla birlikte dil modelini ve çıktı ayrıştırıcıyı birleştiren tanımlanmış aracıyı kullanır.

LangServe Uygulamasını Uvicorn aracılığıyla başlatma

LangServe uygulamasını başlatmak için ASGI sunucusu olarak Uvicorn'u kullanıyoruz ve uygulamamızın çalışması için zemin hazırlıyoruz. Bu kod parçacığı, evrensel ana bilgisayarı ve uygulamanın erişim noktaları için belirlenen bağlantı noktasını belirterek sunucuyu etkinleştirdiği için çok önemlidir.


 if __name__ == "__main__": import uvicorn uvicorn.run(app, host="0.0.0.0", port=8000)


Bu bloğu uygulamanın ana girişine yerleştirerek, komut dosyası doğrudan çalıştırıldığında Uvicorn'un kontrolü ele almasını sağlıyoruz, böylece FastAPI uygulamamızı önceden tanımlanmış bir ana bilgisayar ve bağlantı noktasında aydınlatıyoruz. Bu yaklaşım yalnızca dağıtım sürecini basitleştirmekle kalmaz, aynı zamanda uygulamanın bir geliştirme veya üretim ortamında çalıştırılmasına yönelik açık bir girişi de işaret eder.

Sunucu Uygulamasını Başlatma

Yukarıdaki kod, "langchain-cli" kitaplığının kullanılmasını, yeni bir langchain uygulaması oluşturulmasını ve FastAPI ve LangServe uygulaması server.py kaydedilirken zincir mantığını agent.py kaydetmeyi içeren modüler bir yaklaşım gösterilmiştir.


Bu bizim son adımımız olarak, uygulamamızı oluşturmanın tanıtım amacıyla uygulama kodumuzu server.py kaydedeceğiz.


Hizmetimizi çalıştırmanın en basit yolu şudur:


 python server.py


Bu komut, uygulamayı çalıştıracak ve hala hata ayıklanması gereken günlükleri veya hata mesajlarını döndürecektir.


LangServe çalıştıran terminal çıkışının ekran görüntüsü


LangServe Oyun Alanı

Python çıktısında LangServe günlükleri /invoke/playground uygulama uç noktası olarak tanımlar. Artık oyun alanı WebUI'yi ve API'mizin /docs yolunu ziyaret ederek erişilebilen API'miz için otomatik belgeleri ziyaret edebiliriz; WebUI'dan yürütebileceğimiz önceden tanımlanmış cURL isteklerinin yanı sıra, uygulama özelliklerimizin her biri için Deneyin düğmesini ekleyerek test etme ve yapılandırma konusunda bize basitleştirilmiş bir yaklaşım sağlıyor.


Dağıtılan LangServe Oyun Alanının ekran görüntüsü


Sonuç olarak, MinIO ile entegre LangChain aracımız artık ustaca konuşlandırılabilir bir API'ye dönüştürüldü; toplu işlemeden gerçek zamanlı etkileşimlere kadar çeşitli işlevlere sahip kullanıcılar için geliştirilmeye ve genişletilmeye hazır.

LangServe API'sinin Daha Fazla Kullanımı

LangServe uygulaması çalışır durumdayken, uç noktamızı hedefleyerek ve onu Langserve'in RemoteRunnable modülüne sararak onu server.py dosyamızın dışından kullanabiliriz:


 from langserve import RemoteRunnable remote_runnable = RemoteRunnable("http://localhost:8000/<path>/")


Eklemek


LangChain, kütüphanelerinde çok çeşitli modüller barındırıyor ve geliştiricilere gelişmiş yapay zeka destekli uygulamalar oluşturma konusunda güç vermek için tasarlanmış çeşitli araç kitlerini sergiliyor. LangChain'in modüler mimarisi, karmaşık zincir yapılarından çeşitli yapay zeka modelleriyle kusursuz entegrasyona kadar çok çeşitli işlevleri kolaylaştırarak yapay zeka ve makine öğrenimi alanında son derece özelleştirilebilir ve gelişmiş çözümlerin oluşturulmasına olanak tanır.

LangServe ile Yapay Zeka Ardışık Düzenleri Geliştirme

LangServe, LangChain uygulamalarını dağıtma sürecini yalnızca gizemi açığa çıkarmakla kalmaz, aynı zamanda önemli ölçüde basitleştirir. Geliştirme ve dağıtım arasındaki boşluğu doldurarak, MinIO ve LangChain'den yararlanan yenilikçi uygulamaların konseptten gerçeğe hızlı bir şekilde geçmesini, daha geniş ekosisteme entegre olmaya hazır olmasını ve kullanıcı deneyimlerini geliştirmesini sağlar.


Araştırmalarımız kapsamındaki geliştirmeler sayesinde MinIO'nun kusursuz entegrasyonunu gördük. LangChain kesinlikle mümkün ve nasıl LangServe bu gelişmiş çözümlerin dağıtımında önemli bir rol oynar. Gelişen yapay zeka ve makine öğrenimi ortamında ilerlemeye devam ederken, LangServe gibi araçlar, uygulama geliştirmede en son teknolojileri ön plana çıkarmada etkili olmaya devam edecek.


MinIO olarak, teknoloji açısından zengin bu çağda geliştirici topluluğunun yaratıcılığından ve potansiyelinden güç alıyoruz. İşbirliği ve bilgi alışverişi için daha iyi bir zaman olamaz. Sizinle bağlantı kurmaya can atıyoruz! Bize katılın MinIO Gevşekliği Sohbete devam etmek ve birlikte yeni zirvelere ulaşmak için kanal.