ホームページ > バックエンド開発 > Golang > go を使用して LLM 用のツールを作成する - mcp-golang

go を使用して LLM 用のツールを作成する - mcp-golang

Mary-Kate Olsen
リリース: 2024-12-23 20:48:11
オリジナル
190 人が閲覧しました

Write tools for LLMs with go - mcp-golang

mcp-golang をオープンソース化しました。

数週間前、Anthropic はモデル コンテキスト プロトコル (LLM がツールを使用し、世界と対話できるようにするプロトコル) をリリースしました。

Anthropic によって作成された基本 SDK は Typescript と Python 用であったため、go を使用したかった場合は運が悪かったです。

mcp-golang を使用すると、go のわずか数行のコードでツール サーバーを作成できるようになります。

以下のサーバーを使用すると、LLM はあらゆる場所の天気を理解できます。

package main

import (
    "fmt"
    mcp_golang "github.com/metoro-io/mcp-golang"
    "github.com/metoro-io/mcp-golang/transport/stdio"
    "io"
    "net/http"
)

type WeatherArguments struct {
    Longitude float64 `json:"longitude" jsonschema:"required,description=The longitude of the location to get the weather for"`
    Latitude  float64 `json:"latitude" jsonschema:"required,description=The latitude of the location to get the weather for"`
}

// This is explained in the docs at https://mcpgolang.com/tools
func main() {
    done := make(chan struct{})
    server := mcp_golang.NewServer(stdio.NewStdioServerTransport())
    err := server.RegisterTool("get_weather", "Get the weather forecast for temperature, wind speed and relative humidity", func(arguments WeatherArguments) (*mcp_golang.ToolResponse, error) {
        url := fmt.Sprintf("https://api.open-meteo.com/v1/forecast?latitude=%f&longitude=%f&current=temperature_2m,wind_speed_10m&hourly=temperature_2m,relative_humidity_2m,wind_speed_10m", arguments.Latitude, arguments.Longitude)
        resp, err := http.Get(url)
        if err != nil {
            return nil, err
        }
        defer resp.Body.Close()
        output, err := io.ReadAll(resp.Body)
        if err != nil {
            return nil, err
        }
        return mcp_golang.NewToolReponse(mcp_golang.NewTextContent(string(output))), nil
    })
    err = server.Serve()
    if err != nil {
        panic(err)
    }
    <-done
}
ログイン後にコピー

https://youtu.be/kffLqCgvvdE でデモをチェックしてください!

コーディングを楽しんでください!

以上がgo を使用して LLM 用のツールを作成する - mcp-golangの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート