Dalam artikel ini, kami akan mempelajari cara mencipta ejen tersuai yang menggunakan sumber terbuka llm (llama3.1) yang dijalankan secara setempat pada PC kami. Kami juga akan menggunakan Ollama dan LangChain.
Ikuti arahan berdasarkan jenis OS anda dalam GitHub README untuk memasang Ollama:
https://github.com/ollama/ollama
Saya menggunakan PC berasaskan Linux, jadi saya akan menjalankan arahan berikut dalam terminal saya:
curl -fsSL https://ollama.com/install.sh | sh
Ambil model LLM yang tersedia melalui arahan berikut:
ollama pull llama3.1
Ini akan memuat turun versi teg lalai model. Biasanya, lalai menunjuk kepada model parameter bersaiz terkecil yang terkini. Dalam kes ini, ia akan menjadi model llama3.1:8b.
Untuk memuat turun versi model yang lain, anda boleh pergi ke: https://ollama.com/library/llama3.1 dan pilih versi untuk dipasang, kemudian jalankan arahan tarik ollama dengan model dan nombor versinya . Contoh: ollama tarik llama3.1:70b
Pada Mac, model akan dimuat turun ke ~/.ollama/models
Di Linux (atau WSL), model akan disimpan di /usr/share/ollama/.ollama/models
Jalankan arahan berikut untuk memulakan ollama tanpa menjalankan aplikasi desktop.
ollama serve
Semua model dihidangkan secara automatik pada localhost:11434
Buat folder baharu pada komputer anda dan kemudian buka dengan editor kod seperti Kod VS.
Buka terminal. Gunakan arahan berikut untuk mencipta persekitaran maya .venv dan aktifkannya:
python3 -m venv .venv
source .venv/bin/activate
Jalankan arahan berikut untuk memasang langchain dan langchain-ollama:
pip install -U langchain langchain-ollama
Arahan di atas akan memasang atau menaik taraf pakej LangChain dan LangChain-Ollama dalam Python. Bendera -U memastikan bahawa versi terkini pakej ini dipasang, menggantikan mana-mana versi lama yang mungkin sudah ada.
Buat fail Python sebagai contoh: main.py dan tambah kod berikut:
from langchain_ollama import ChatOllama from langchain.agents import tool from langchain_core.prompts import ChatPromptTemplate, MessagesPlaceholder from langchain.agents.format_scratchpad.openai_tools import ( format_to_openai_tool_messages, ) from langchain.agents import AgentExecutor from langchain.agents.output_parsers.openai_tools import OpenAIToolsAgentOutputParser llm = ChatOllama( model="llama3.1", temperature=0, verbose=True ) @tool def get_word_length(word: str) -> int: """Returns the length of a word.""" return len(word) tools = [get_word_length] prompt = ChatPromptTemplate.from_messages( [ ( "system", "You are very powerful assistant", ), ("user", "{input}"), MessagesPlaceholder(variable_name="agent_scratchpad"), ] ) llm_with_tools = llm.bind_tools(tools) agent = ( { "input": lambda x: x["input"], "agent_scratchpad": lambda x: format_to_openai_tool_messages( x["intermediate_steps"] ), } | prompt | llm_with_tools | OpenAIToolsAgentOutputParser() ) # Create an agent executor by passing in the agent and tools agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True) result = agent_executor.invoke({"input": "How many letters in the word educa"}) if result: print(f"[Output] --> {result['output']}") else: print('There are no result..')
Coretan kod di atas menyediakan ejen LangChain menggunakan model ChatOllama (llama3.1) untuk memproses input pengguna dan menggunakan alat tersuai yang mengira panjang perkataan. Ia mentakrifkan templat segera untuk ejen, mengikat alat kepada model bahasa dan membina ejen yang memproses input dan memformat langkah perantaraan. Akhirnya, ia mencipta AgentExecutor untuk memanggil ejen dengan input tertentu. Kami menghantar soalan mudah untuk bertanya "Berapa banyak huruf dalam perkataan educa" dan kemudian kami mencetak output atau menunjukkan jika tiada hasil ditemui.
Apabila kita berlari, kita mendapat keputusan berikut:
> Entering new AgentExecutor chain... Invoking: `get_word_length` with `{'word': 'educa'}` 5The word "educa" has 5 letters. > Finished chain. [Output] --> The word "educa" has 5 letters.
Anda melihat ejen menggunakan model (llama3.1) untuk memanggil alat dengan betul untuk mendapatkan kiraan huruf dalam perkataan.
Terima kasih kerana membaca.
Semak repo Ollama di sini: https://github.com/ollama/ollama
Atas ialah kandungan terperinci Buat Ejen LLM Tersuai anda sendiri Menggunakan Model Sumber Terbuka (llama). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!