首页 > 其他分享 >go调用langchain

go调用langchain

时间:2024-04-27 15:12:23浏览次数:23  
标签:调用 log err llms ctx langchain nil context go

openai版本 设置环境变量OPENAI_API_KEY

package main

import (
  "context"
  "fmt"
  "log"

  "github.com/tmc/langchaingo/llms"
  "github.com/tmc/langchaingo/llms/openai"
)

func main() {
  ctx := context.Background()
  llm, err := openai.New()
  if err != nil {
    log.Fatal(err)
  }
  prompt := "What would be a good company name for a company that makes colorful socks?"
  completion, err := llms.GenerateFromSinglePrompt(ctx, llm, prompt)
  if err != nil {
    log.Fatal(err)
  }
  fmt.Println(completion)
}

ollama版本

package main

import (
	"context"
	"fmt"
	"log"

	"github.com/tmc/langchaingo/llms"
	"github.com/tmc/langchaingo/llms/ollama"
)

func main() {
	llm, err := ollama.New(ollama.WithModel("mistral")) //大模型版本
	if err != nil {
		log.Fatal(err)
	}
	ctx := context.Background()

	content := []llms.MessageContent{
		llms.TextParts(llms.ChatMessageTypeSystem, "You are a company branding design wizard."),
		llms.TextParts(llms.ChatMessageTypeHuman, "What would be a good company name a company that makes colorful socks?"),
	}
	completion, err := llm.GenerateContent(ctx, content, llms.WithStreamingFunc(func(ctx context.Context, chunk []byte) error {
		fmt.Print(string(chunk))
		return nil
	}))
	if err != nil {
		log.Fatal(err)
	}
	_ = completion
}

流式返回

package main

import (
	"context"
	"fmt"
	"log"

	"github.com/tmc/langchaingo/llms"
	"github.com/tmc/langchaingo/llms/ollama"
)

func main() {
	llm, err := ollama.New(ollama.WithModel("llama2"))
	if err != nil {
		log.Fatal(err)
	}
	ctx := context.Background()
	completion, err := llms.GenerateFromSinglePrompt(
		ctx,
		llm,
		"Human: Who was the first man to walk on the moon?\nAssistant:",
		llms.WithTemperature(0.8),
		llms.WithStreamingFunc(func(ctx context.Context, chunk []byte) error {
			fmt.Print(string(chunk))
			return nil
		}),
	)
	if err != nil {
		log.Fatal(err)
	}

	_ = completion
}

标签:调用,log,err,llms,ctx,langchain,nil,context,go
From: https://www.cnblogs.com/qcy-blog/p/18162075

相关文章

  • RPC(远程过程调用)详解
    一、RPC是什么RPC是指远程过程调用,也就是说两台服务器A,B,一个应用部署在A服务器上,想要调用B服务器上应用提供的函数/方法,由于不在一个内存空间,不能直接调用,需要通过网络来表达调用的语义和传达调用的数据。二、RPC需要解决的问题1、CallID映射我们怎么告诉远程机器我们要调用f......
  • 2024-04-27:用go语言,在一个下标从 1 开始的 8 x 8 棋盘上,有三个棋子,分别是白色车、白色
    2024-04-27:用go语言,在一个下标从1开始的8x8棋盘上,有三个棋子,分别是白色车、白色象和黑色皇后。给定这三个棋子的位置,请计算出要捕获黑色皇后所需的最少移动次数。需要注意的是,白色车可以垂直或水平移动,而白色象可以沿对角线移动,它们不能跳过其他棋子。如果白色车或白色象......
  • 微服务想缓存一些数据,不希望重复调用。java SoftReference软引用存储缓存
    背景:微服务我们要调用字典数据,但是很多都是要重复调用的,没有缓存,我为了设置一个应用的缓存,并且可以定时清理,更新 首先定义两个静态数据,。一个软连接缓存,一个定时清理线程privatestaticSoftReference<Map<String,Map<String,DictionaryVo>>>plmDicMapCache=newSoftR......
  • Fast Training Algorithms for Deep Convolutional Fuzzy Systems With Application t
    类似深度卷积神经网络DCNN,模糊系统领域有个深度卷积模糊系统deepconvolutionalfuzzysystem(DCFS),每一层都是一个模糊系统,上一层的输出是下一层的输入。这篇论文目的是加速DCFS的计算速度,解决可解释性1990年提出,也用反向传播训练DCFS受困于低维度小数据集,大数据量时计算负担太......
  • mongodb异机做时间点恢复(异机建议部署免密登录)
    环境:OS:Centos7DB:mongodb5原环境:1主2从,异机恢复的环境:单机(oplog.rs是否开启都可以,开启可以参考:https://www.cnblogs.com/hxlasky/p/17979922) 1.查看当前的表数据情况myrepl:PRIMARY>usedb_pushmsg;switchedtodbdb_pushmsgmyrepl:PRIMARY>showtables;app......
  • django自定义构建模板,通过bootstrap实现菜单隐藏和显示
    实现后的界面1.自定义页面模板实现主页面代码(home.html){%extends'layout.html'%}#引用模板{%loadstatic%}{%blockcontent%}<h3>欢迎登录</h3>{%endblock%}自定义内容layout.html文件设置(模板){%loadstatic%}{%loadmenu%}#导入m......
  • 【python】记录一次python发送json数据到go服务端,服务端解析失败问题
    【python】记录一次python发送json数据到go服务端,服务端解析失败问题背景:在做性能测试时,python把采集到的性能数据通过post回传到服务端,服务端用go实现,服务端是将接收的json通过json.Unmarshal反序列化为对应的结构体,但在实现时一直提示数据类型错误的问题问题代码python发送请......
  • golang 1.20.13 定时执行bat shell 脚本
    golang1.20.13定时执行batshell脚本packagemainimport("fmt""os/exec""time")funcmain(){//设置定时任务的时间t:=time.Now()next:=time.Date(t.Year(),t.Month(),t.Day(),13,53,0,0,t.Location())......
  • Go+seata实现分布式事务-tcc
    上篇用的ta跟xa。这次试试tccclientpackagemainimport( "context" "flag" "fmt" "net/http" "time" "github.com/parnurzeal/gorequest" "github.com/seata/seata-go/pkg/client" "github.......
  • Godot中设置Sprite2D节点透明度
    Godot中设置Sprite2D节点透明度该方法可以用于所有CanvasItem​类及其子类···#假设在`CancasItem`节点自身脚本中执行#设置范围0~1##设置自己及子节点modulate.a=0.5##仅设置自己节点的透明度self_modulate.a=0.5#设置范围(0~255)8bit##设置自己及子节点mod......