graph TD;A[开始] --> B[导入包];B --> C[初始化OpenAI模型];C --> D[创建消息图];D --> E[添加"oracle"节点];E --> F[添加END节点];F --> G[添加从"oracle"到END的边];G --> H[设置入口点为"oracle"];H --> I[编译消息图];I --> J[创建背景上下文];J --> K[调用消息图处理用户输入];K --> L[打印结果];L --> M[结束];subgraph 初始化OpenAI模型 [初始化OpenAI模型]C1[设置BaseURL为"http://127.0.0.1:11434/v1/"];C2[设置Token为"ollama"];C3[设置Model为"deepseek-r1:1.5b"];C1 --> C2 --> C3;endsubgraph 调用消息图处理用户输入 [调用消息图处理用户输入]K1[传入用户消息"What is 1 + 1?"];K2[生成AI回复];K3[返回结果];K1 --> K2 --> K3;endI --> N[编译失败];K --> O[处理失败];N --> P[程序终止];O --> P;
```mermaidgraph TD;A[开始] --> B[导入包];B --> C[初始化OpenAI模型];C --> D[创建消息图];D --> E[添加oracle节点];E --> F[添加END节点];F --> G[添加从oracle到END的边];G --> H[设置入口点为oracle];H --> I[编译消息图];I --> J[创建背景上下文];J --> K[调用消息图处理用户输入];K --> L[打印结果];L --> M[结束];subgraph 初始化OpenAI模型 [初始化OpenAI模型]C1[设置BaseURL];C2[设置Token为ollama];C3[设置Model为deepseek-r1:1.5b];C1 --> C2 --> C3;endsubgraph 调用消息图处理用户输入 [调用消息图处理用户输入]K1[传入用户消息What is 1 + 1?];K2[生成AI回复];K3[返回结果];K1 --> K2 --> K3;endI --> N[编译失败];K --> O[处理失败];N --> P[程序终止];O --> P;```


package mainimport ("context""fmt""io/ioutil""log""github.com/tmc/langchaingo/llms""github.com/tmc/langchaingo/llms/openai")func main() {llm, err := openai.New(openai.WithBaseURL("http://127.0.0.1:11434/v1/"),openai.WithToken("ollama"),openai.WithModel("deepseek-r1:1.5b"),)if err != nil {panic(err)}ctx := context.Background()var roleContent llms.MessageContentroleContent=llms.TextParts(llms.ChatMessageTypeSystem, "You are a professional coder.")// 增加 human 消息code, err := ioutil.ReadFile("/go/exp20/main.go")if err != nil {log.Fatal(err)return}commentedContent:=[]llms.MessageContent{roleContent,llms.TextParts(llms.ChatMessageTypeHuman, fmt.Sprintf("请理解这段代码和注释进行总结:%s,生成核心流程的mermaid活动图代码,要求符合mermaid语法规范,所有标签不能有引号等特殊字符,可以包含中文", string(code))),}// 调用模型生成回复reply, err := llm.GenerateContent(ctx, commentedContent,// 设置最大生成长度llms.WithMaxTokens(2048),// 设置 temperaturellms.WithTemperature(0.01),)if err != nil {log.Fatal(err)}fmt.Println(reply.Choices[0].Content)}
```mermaidgraph TDA[Start] --> B[Initialize Model]B --> C{Model Initialization Success?}C -- Yes --> D[Create Message Graph]C -- No --> E[Error: Panic]D --> F[Add oracle Node]D --> G[Add END Node]D --> H[Add Edge from oracle to END]D --> I[Set oracle as Entry Point]F --> J[Compile Graph]J --> K{Compilation Success?}K -- Yes --> L[Run Graph]K -- No --> M[Error: Panic]L --> N[Invoke Graph with Input]N --> O{Graph Execution Success?}O -- Yes --> P[Output Result]O -- No --> Q[Error: Panic]P --> R[End]```



文章转载自golang算法架构leetcode技术php,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




