Function Callingとツール利用
ユーザーのプロンプトに応じて特定の関数を呼び出すようLLMに学習させ、外部ツールやAPIと連携させる方法を学びます。
「Function Callingとツール利用」はCoddyKit上の無料Prompt Engineering & LLM Optimization for Developersレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはPrompt Engineering & LLM Optimization for Developers学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Prompt Engineering & LLM Optimization for Developersコースには全4レッスンが含まれています。
このレッスンの一部はまだ翻訳されておらず、英語で表示されています。
LLMs & External Tools
Large Language Models (LLMs) are amazing at understanding and generating text. However, they typically don't have direct access to:
- Real-time information: Like today's weather or current stock prices.
- External actions: Such as sending an email or booking a flight.
- Complex computations: Beyond simple arithmetic.
This is where Function Calling comes in!
Bridging the Gap with Tools
Function calling allows LLMs to interact with the outside world by letting them 'call' external tools or APIs. It bridges the gap between the LLM's language abilities and real-world actions.
Think of it as giving the LLM a set of specialized gadgets it can recommend using when needed.
How it Works: The LLM's Role
When you use function calling, the LLM doesn't *execute* code itself. Instead, it acts like a smart planner or router:
- It analyzes your prompt.
- It identifies if any defined tools could help fulfill your request.
- If so, it suggests which tool to use and what arguments (inputs) to pass to it.
Your application then takes this suggestion and performs the actual action.
Defining Your Tools (Schema)
Before an LLM can recommend a tool, it needs to know what tools are available. You provide a 'schema' – a description of each function/tool your application can perform.
This schema tells the LLM:
- The function's name (e.g.,
get_current_weather). - A clear description of what the function does.
- Its required parameters (inputs) and their types (e.g.,
location: string).
Example: A Weather Tool Definition
Here's how you might conceptually define a simple weather tool for an LLM. This description helps the LLM understand *when* and *how* to use it.
function get_current_weather(location: string, unit: "celsius" | "fahrenheit" = "fahrenheit") {
// Gets the current weather for a given location.
// Returns temperature, conditions, and humidity.
}The Interaction Flow
Let's trace a typical interaction with function calling:
- User Prompt: You ask the LLM a question (e.g., "What's the weather in Paris?").
- LLM Suggestion: The LLM sees the weather tool definition and suggests calling
get_current_weather(location="Paris"). - Your App Action: Your application receives this suggestion, calls a real weather API, and gets the data.
- LLM Final Response: Your app sends the weather data back to the LLM, which then generates a natural language response for you.
Step-by-Step Scenario
Imagine you have a get_stock_price tool defined. Here's a flow:
- User: "What's the current price of Apple stock?"
- LLM (internally): "Aha! The user wants a stock price. I have a
get_stock_pricetool that takes asymbol." - LLM Output:
tool_call: get_stock_price(symbol="AAPL") - Your App: Executes the
get_stock_pricefunction with "AAPL". - Your App: Gets "$175.50" and sends it back to the LLM.
- LLM: "The current price of Apple (AAPL) stock is $175.50."
Benefits of Function Calling
Function calling dramatically enhances LLM capabilities:
- Access to Real-time Data: Get up-to-date information that the LLM's training data might not have.
- Perform Actions: Enable LLMs to trigger real-world processes.
- Reduce Hallucinations: Ground LLM responses in factual, external data, making them more reliable.
- Complex Logic: Delegate complex calculations or data retrieval to robust external systems.
Common Use Cases
Function calling is versatile and can be applied to many scenarios:
- Data Retrieval: Fetching information from databases, APIs, or files.
- Calculations: Using a calculator tool for precise math.
- Sending Notifications: Integrating with email or messaging services.
- Database Interactions: Querying or updating records.
- Home Automation: Turning on lights or adjusting thermostats.
Quick Check: LLM's Role
You've defined a tool for your LLM. A user asks a question that requires this tool.
Recap: Tools & Smarter LLMs
You've learned about Function Calling, a powerful technique that allows LLMs to interact with external tools and APIs. By defining schemas for your functions, you enable LLMs to act as smart planners, suggesting relevant actions and arguments based on user prompts.
This capability opens up a world of possibilities, making LLM-powered applications more dynamic, factual, and capable of real-world interaction.
よくある質問
「Function Callingとツール利用」レッスンは無料ですか?
はい。「Function Callingとツール利用」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Prompt Engineering & LLM Optimization for Developersコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Prompt Engineering & LLM Optimization for Developersコースには全4レッスンが含まれています。
「Function Callingとツール利用」で何を学びますか?
ユーザーのプロンプトに応じて特定の関数を呼び出すようLLMに学習させ、外部ツールやAPIと連携させる方法を学びます。 ブラウザで直接実行するハンズオンコードでPrompt Engineering & LLM Optimization for Developersを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Prompt Engineering & LLM Optimization for Developersを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのPrompt Engineering & LLM Optimization for Developersは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。
「Function Callingとツール利用」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このPrompt Engineering & LLM Optimization for Developersレッスンでコードを書いて実行できますか?
はい。すべてのPrompt Engineering & LLM Optimization for Developersレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- Retrieval Augmented Generation(RAG)
- Function Callingとツール利用
- シンプルなLLMエージェントの構築
- LLMレスポンスをユーザーにストリーミングする