Rumah > Peranti teknologi > AI > Menyediakan alat dan ejen tersuai di Langchain

Menyediakan alat dan ejen tersuai di Langchain

William Shakespeare
Lepaskan: 2025-03-20 10:19:12
asal
919 orang telah melayarinya

Tutorial ini menunjukkan membina ejen AI perbualan yang serba boleh menggunakan Langchain, rangka kerja yang kuat yang mengintegrasikan model bahasa yang besar (LLMS) dengan alat luaran dan API. Ejen ini boleh melaksanakan tugas yang pelbagai, daripada menjana nombor rawak dan menawarkan pemikiran falsafah untuk mendapatkan semula dan memproses maklumat secara dinamik dari halaman web. Gabungan alat pra-bina dan adat membolehkan tindak balas masa nyata, konteks, dan maklumat bermaklumat.

Hasil pembelajaran utama

  • Integrasi Master Langchain dengan LLM dan sumber luaran.
  • Membangun dan melaksanakan alat tersuai untuk fungsi khusus dalam ejen perbualan anda.
  • Mengambil dan memproses data web secara efisien untuk respons yang tepat.
  • Bina ejen perbualan yang mengekalkan konteks untuk interaksi yang koheren.

*Artikel ini adalah sebahagian daripada *** Data Science Blogathon.

Jadual Kandungan

  • Mengapa menggabungkan Langchain, Openai, dan Duckduckgo?
  • Memasang pakej yang diperlukan
  • Mengkonfigurasi akses API
  • Menyambungkan Langchain ke Model Openai
  • Mengintegrasikan Alat Carian Web
  • Mewujudkan fungsi tersuai
  • Membina ejen perbualan dengan alat tersuai
  • Menggunakan kelas Tool untuk mengikis web
  • Kesimpulan
  • Soalan yang sering ditanya

Mengapa menggabungkan Langchain, Openai, dan Duckduckgo?

Sinergi Langchain, Openai, dan Duckduckgo membolehkan AI perbualan yang canggih. LLM Openai menyediakan pemprosesan bahasa semulajadi, sementara DuckDuckGo menawarkan API carian yang berfokus pada privasi. Gabungan ini membolehkan AI menjana tindak balas yang relevan secara kontekstual dan mengambil data masa nyata, meningkatkan kebolehsuaian dan ketepatannya. Toolkit yang kuat ini sangat sesuai untuk membuat chatbots pintar atau pembantu maya yang mampu mengendalikan pertanyaan pengguna yang pelbagai.

Memasang pakej yang diperlukan

Mulakan dengan memasang pakej python yang diperlukan menggunakan PIP:

 <code>!pip -q install langchain==0.3.4 openai pip install langchain !pip -q install duckduckgo-search</code>
Salin selepas log masuk

Sahkan pemasangan Langchain:

 <code>!pip show langchain</code>
Salin selepas log masuk

Menyediakan alat dan ejen tersuai di Langchain

Mengkonfigurasi akses API

Dapatkan kunci API Openai anda dan tetapkannya sebagai pemboleh ubah persekitaran:

 <code>import os os.environ["OPENAI_API_KEY"] = "your_openai_key_here"</code>
Salin selepas log masuk

Gantikan "your_openai_key_here" dengan kunci sebenar anda. Ini penting untuk berinteraksi dengan model GPT-3.5-Turbo.

Menyambungkan Langchain ke Model Openai

Mewujudkan sambungan ke model Openai menggunakan Langchain:

 <code>from langchain import OpenAI from langchain.chat_models import ChatOpenAI from langchain.chains.conversation.memory import ConversationBufferWindowMemory # Configure the GPT-4o LLM turbo_llm = ChatOpenAI( temperature=0, model_name='gpt-4o' )</code>
Salin selepas log masuk

Suhu yang rendah (suhu = 0) memastikan tindak balas yang konsisten.

Mengintegrasikan Alat Carian Web

Tingkatkan keupayaan ejen anda dengan menambahkan alat carian DuckDuckGo:

 <code>from langchain.tools import DuckDuckGoSearchTool from langchain.agents import Tool from langchain.tools import BaseTool search = DuckDuckGoSearchTool() # Define the tool tools = [ Tool( name = "search", func=search.run, description="Best for questions about current events. Use precise queries." ) ]</code>
Salin selepas log masuk

Alat ini, yang digambarkan sebagai ideal untuk peristiwa semasa, ditambah kepada toolkit ejen.

Mewujudkan fungsi tersuai

Panjangkan fungsi ejen anda dengan alat tersuai:

Alat tersuai: makna hidup

Fungsi ini memberikan respons yang menggembirakan terhadap persoalan makna hidup:

 <code>def meaning_of_life(input=""): return 'The meaning of life is 42 (approximately!)' life_tool = Tool( name='Meaning of Life', func= meaning_of_life, description="Use for questions about the meaning of life. Input: 'MOL'" )</code>
Salin selepas log masuk

Alat tersuai: penjana nombor rawak

Alat ini menjana bilangan bulat rawak antara 0 dan 5:

 <code>import random def random_num(input=""): return random.randint(0,5) random_tool = Tool( name='Random number', func= random_num, description="Use to get a random number. Input: 'random'" )</code>
Salin selepas log masuk

Membina ejen perbualan dengan alat tersuai

Mewujudkan ejen perbualan dengan alat tersuai membolehkan interaksi yang sangat disesuaikan.

Permulaan ejen

Import initialize_agent dan tentukan alat:

 <code>from langchain.agents import initialize_agent tools = [search, random_tool, life_tool]</code>
Salin selepas log masuk

Memori ejen

Melaksanakan Memori Menggunakan ConversationBufferWindowMemory :

 <code>from langchain.chains.conversation.memory import ConversationBufferWindowMemory memory = ConversationBufferWindowMemory( memory_key='chat_history', k=3, return_messages=True )</code>
Salin selepas log masuk

Ini membolehkan ejen untuk mengingati perbualan baru -baru ini (sehingga 3).

Pembinaan ejen

Memulakan ejen:

 <code>conversational_agent = initialize_agent( agent='chat-conversational-react-description', tools=tools, llm=turbo_llm, verbose=True, max_iterations=3, early_stopping_method='generate', memory=memory )</code>
Salin selepas log masuk

Parameter menentukan jenis ejen, alat, LLM, kelebihan, had lelaran, berhenti awal, dan ingatan.

Ujian ejen

Berinteraksi dengan ejen:

 <code>conversational_agent("What time is it in London?") conversational_agent("Can you give me a random number?") conversational_agent("What is the meaning of life?")</code>
Salin selepas log masuk

Menyediakan alat dan ejen tersuai di LangchainMenyediakan alat dan ejen tersuai di LangchainMenyediakan alat dan ejen tersuai di Langchain

Menyesuaikan arahan sistem

Tentukan tingkah laku ejen dengan menyesuaikan sistem yang cepat:

 <code># system prompt conversational_agent.agent.llm_chain.prompt.messages[0].prompt.template</code>
Salin selepas log masuk

Menyediakan alat dan ejen tersuai di Langchain

 <code>fixed_prompt = '''Assistant is a large language model... [modified prompt instructing the agent to use tools appropriately]'''</code>
Salin selepas log masuk

Memohon prompt yang diubah suai:

 <code>conversational_agent.agent.llm_chain.prompt.messages[0].prompt.template = fixed_prompt</code>
Salin selepas log masuk

Menguji semula ejen.

Menyediakan alat dan ejen tersuai di LangchainMenyediakan alat dan ejen tersuai di Langchain

Menggunakan kelas Tool untuk mengikis web

Buat alat tersuai untuk mengekstrak teks biasa dari halaman web:

 <code>from bs4 import BeautifulSoup import requests from langchain.agents import Tool def stripped_webpage(webpage): # ... (function to fetch and clean webpage text) ... web_scraper_tool = Tool( name='Web Scraper', func=stripped_webpage, description="Fetches and cleans webpage text (limited to 4000 characters)." )</code>
Salin selepas log masuk

Mengintegrasikan alat ini ke dalam ejen anda.

Membuat Kelas WebPageTool

Penyelesaian yang lebih mantap melibatkan mewujudkan kelas WebPageTool tersuai:

 dari Langchain.Tools Import Basetool
dari bs4 import cantikSoup
permintaan import

Kelas WebpageTool (Basetool):
    # ... (definisi kelas seperti dalam respons asal) ...
Salin selepas log masuk

Reinitialize ejen dengan alat baru dan prompt sistem yang dikemas kini. Uji dengan contoh seperti:

 Conversional_agent.run ("Adakah terdapat artikel mengenai rumah kelab di https://techcrunch.com/? Hari ini")
perbualan_agent.run ("Apa cerita teratas di www.cbsnews.com/?") 
Salin selepas log masuk

Menyediakan alat dan ejen tersuai di LangchainMenyediakan alat dan ejen tersuai di LangchainMenyediakan alat dan ejen tersuai di Langchain

Kesimpulan

Tutorial ini menunjukkan membina ejen perbualan yang sangat mudah disesuaikan menggunakan Langchain. Reka bentuk modular membolehkan pengembangan dan penyesuaian mudah. Ejen ini mempamerkan kuasa menggabungkan AI dengan akses data masa nyata.

Takeaways utama

  • Langchain membolehkan pembinaan ejen modular.
  • Alat pengikis dan carian web memberikan maklumat terkini.
  • Alat tersuai menyesuaikan ejen kepada keperluan khusus.
  • Ciri -ciri memori mengekalkan konteks perbualan.

Soalan yang sering ditanya

(Soalan Lazim yang sama seperti dalam respons asal, ditulis semula untuk aliran dan kesimpulan yang lebih baik.)

Atas ialah kandungan terperinci Menyediakan alat dan ejen tersuai di Langchain. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan