Heim > Backend-Entwicklung > Golang > Schreiben Sie Tools für LLMs mit go - mcp-golang

Schreiben Sie Tools für LLMs mit go - mcp-golang

Mary-Kate Olsen
Freigeben: 2024-12-23 20:48:11
Original
189 Leute haben es durchsucht

Write tools for LLMs with go - mcp-golang

Wir haben mcp-golang gerade als Open-Source-Lösung bereitgestellt!

Vor ein paar Wochen veröffentlichte Anthropic das Model Context Protocol – ein Protokoll, das LLMs die Nutzung von Tools und die Interaktion mit der Welt ermöglicht.

Die von Anthropic geschriebenen Basis-SDKS waren für Typescript und Python. Wenn Sie also Go verwenden wollten, hatten Sie kein Glück.

Mit mcp-golang können Sie jetzt Tool-Server in nur wenigen Codezeilen in go schreiben.

Der unten stehende Server ermöglicht es einem LLM, das Wetter an jedem Ort zu verstehen.

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
}
Nach dem Login kopieren

Schauen Sie sich eine Demo unter https://youtu.be/kffLqCgvvdE an!

Viel Spaß beim Codieren!

Das obige ist der detaillierte Inhalt vonSchreiben Sie Tools für LLMs mit go - mcp-golang. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage