Skip to content

Commit 7717947

Browse files
committed
docs: add memory and image video tool docs
1 parent c1fac86 commit 7717947

File tree

1 file changed

+210
-2
lines changed

1 file changed

+210
-2
lines changed

docs/docs/tools/builtin.md

Lines changed: 210 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -225,12 +225,119 @@ veADK 集成了以下火山引擎工具:
225225
2. 需要配置用于 Agent 推理图像生成的模型名称
226226

227227

228-
=== "代码"
228+
=== "Python"
229229

230230
```python
231231
--8<-- "examples/tools/image_generate/agent.py"
232232
```
233233

234+
=== "Golang"
235+
236+
```go
237+
package main
238+
239+
import (
240+
"context"
241+
"fmt"
242+
"log"
243+
"os"
244+
245+
"github.com/a2aproject/a2a-go/a2asrv"
246+
"github.com/google/uuid"
247+
veagent "github.com/volcengine/veadk-go/agent/llmagent"
248+
"github.com/volcengine/veadk-go/common"
249+
"github.com/volcengine/veadk-go/tool/builtin_tools"
250+
"google.golang.org/adk/agent"
251+
"google.golang.org/adk/agent/llmagent"
252+
"google.golang.org/adk/artifact"
253+
"google.golang.org/adk/cmd/launcher"
254+
"google.golang.org/adk/cmd/launcher/full"
255+
"google.golang.org/adk/model"
256+
"google.golang.org/adk/session"
257+
"google.golang.org/adk/tool"
258+
)
259+
260+
func saveReportfunc(ctx agent.CallbackContext, llmResponse *model.LLMResponse, llmResponseError error) (*model.LLMResponse, error) {
261+
if llmResponse == nil || llmResponse.Content == nil || llmResponseError != nil {
262+
return llmResponse, llmResponseError
263+
}
264+
for _, part := range llmResponse.Content.Parts {
265+
if part.Text == "" {
266+
continue
267+
}
268+
_, err := ctx.Artifacts().Save(ctx, uuid.NewString(), part)
269+
if err != nil {
270+
return nil, err
271+
}
272+
}
273+
return llmResponse, llmResponseError
274+
}
275+
276+
// AuthInterceptor sets 'user' name needed for both a2a and webui launchers which sharing the same sessions service.
277+
type AuthInterceptor struct {
278+
a2asrv.PassthroughCallInterceptor
279+
}
280+
281+
// Before implements a before request callback.
282+
func (a *AuthInterceptor) Before(ctx context.Context, callCtx *a2asrv.CallContext, req *a2asrv.Request) (context.Context, error) {
283+
callCtx.User = &a2asrv.AuthenticatedUser{
284+
UserName: "user",
285+
}
286+
return ctx, nil
287+
}
288+
289+
func main() {
290+
ctx := context.Background()
291+
cfg := &veagent.Config{
292+
ModelName: common.DEFAULT_MODEL_AGENT_NAME,
293+
ModelAPIBase: common.DEFAULT_MODEL_AGENT_API_BASE,
294+
ModelAPIKey: os.Getenv(common.MODEL_AGENT_API_KEY),
295+
}
296+
cfg.Name = "image_generate_tool_agent"
297+
cfg.Description = "Agent to generate images based on text descriptions or images."
298+
cfg.Instruction = "I can generate images based on text descriptions or images."
299+
cfg.AfterModelCallbacks = []llmagent.AfterModelCallback{saveReportfunc}
300+
301+
imageGenerate, err := builtin_tools.NewImageGenerateTool(&builtin_tools.ImageGenerateConfig{
302+
ModelName: common.DEFAULT_MODEL_IMAGE_NAME,
303+
BaseURL: common.DEFAULT_MODEL_IMAGE_API_BASE,
304+
APIKey: os.Getenv(common.MODEL_IMAGE_API_KEY),
305+
})
306+
if err != nil {
307+
fmt.Printf("NewLLMAgent failed: %v", err)
308+
return
309+
}
310+
311+
cfg.Tools = []tool.Tool{imageGenerate}
312+
313+
sessionService := session.InMemoryService()
314+
rootAgent, err := veagent.New(cfg)
315+
316+
if err != nil {
317+
log.Fatalf("Failed to create agent: %v", err)
318+
}
319+
320+
agentLoader, err := agent.NewMultiLoader(
321+
rootAgent,
322+
)
323+
if err != nil {
324+
log.Fatalf("Failed to create agent loader: %v", err)
325+
}
326+
327+
artifactservice := artifact.InMemoryService()
328+
config := &launcher.Config{
329+
ArtifactService: artifactservice,
330+
SessionService: sessionService,
331+
AgentLoader: agentLoader,
332+
}
333+
334+
l := full.NewLauncher()
335+
if err = l.Execute(ctx, config, os.Args[1:]); err != nil {
336+
log.Fatalf("Run failed: %v\n\n%s", err, l.CommandLineSyntax())
337+
}
338+
}
339+
```
340+
234341
=== "环境变量"
235342

236343
环境变量列表:
@@ -268,12 +375,113 @@ veADK 集成了以下火山引擎工具:
268375
3. 需要配置用于 Agent 推理图片生成的模型名称(该用例使用了 image_generate 工具,因此需要推理图像生成模型的配置)
269376

270377

271-
=== "代码"
378+
=== "Python"
272379

273380
```python
274381
--8<-- "examples/tools/video_generate/agent.py"
275382
```
276383

384+
=== "Golang"
385+
386+
```go
387+
package main
388+
389+
import (
390+
"context"
391+
"fmt"
392+
"log"
393+
"os"
394+
395+
"github.com/a2aproject/a2a-go/a2asrv"
396+
"github.com/google/uuid"
397+
veagent "github.com/volcengine/veadk-go/agent/llmagent"
398+
"github.com/volcengine/veadk-go/common"
399+
"github.com/volcengine/veadk-go/tool/builtin_tools"
400+
"google.golang.org/adk/agent"
401+
"google.golang.org/adk/artifact"
402+
"google.golang.org/adk/cmd/launcher"
403+
"google.golang.org/adk/cmd/launcher/full"
404+
"google.golang.org/adk/model"
405+
"google.golang.org/adk/session"
406+
"google.golang.org/adk/tool"
407+
)
408+
409+
func saveReportfunc(ctx agent.CallbackContext, llmResponse *model.LLMResponse, llmResponseError error) (*model.LLMResponse, error) {
410+
if llmResponse == nil || llmResponse.Content == nil || llmResponseError != nil {
411+
return llmResponse, llmResponseError
412+
}
413+
for _, part := range llmResponse.Content.Parts {
414+
if part.Text == "" {
415+
continue
416+
}
417+
_, err := ctx.Artifacts().Save(ctx, uuid.NewString(), part)
418+
if err != nil {
419+
return nil, err
420+
}
421+
}
422+
return llmResponse, llmResponseError
423+
}
424+
425+
// AuthInterceptor sets 'user' name needed for both a2a and webui launchers which sharing the same sessions service.
426+
type AuthInterceptor struct {
427+
a2asrv.PassthroughCallInterceptor
428+
}
429+
430+
// Before implements a before request callback.
431+
func (a *AuthInterceptor) Before(ctx context.Context, callCtx *a2asrv.CallContext, req *a2asrv.Request) (context.Context, error) {
432+
callCtx.User = &a2asrv.AuthenticatedUser{
433+
UserName: "user",
434+
}
435+
return ctx, nil
436+
}
437+
438+
func main() {
439+
ctx := context.Background()
440+
cfg := &veagent.Config{
441+
ModelName: common.DEFAULT_MODEL_AGENT_NAME,
442+
ModelAPIBase: common.DEFAULT_MODEL_AGENT_API_BASE,
443+
ModelAPIKey: os.Getenv(common.MODEL_AGENT_API_KEY),
444+
}
445+
videoGenerate, err := builtin_tools.NewVideoGenerateTool(&builtin_tools.VideoGenerateConfig{
446+
ModelName: common.DEFAULT_MODEL_VIDEO_NAME,
447+
BaseURL: common.DEFAULT_MODEL_VIDEO_API_BASE,
448+
APIKey: os.Getenv(common.MODEL_VIDEO_API_KEY),
449+
})
450+
if err != nil {
451+
fmt.Printf("NewLLMAgent failed: %v", err)
452+
return
453+
}
454+
455+
cfg.Tools = []tool.Tool{videoGenerate}
456+
457+
sessionService := session.InMemoryService()
458+
rootAgent, err := veagent.New(cfg)
459+
460+
if err != nil {
461+
log.Fatalf("Failed to create agent: %v", err)
462+
}
463+
464+
agentLoader, err := agent.NewMultiLoader(
465+
rootAgent,
466+
)
467+
if err != nil {
468+
log.Fatalf("Failed to create agent loader: %v", err)
469+
}
470+
471+
artifactservice := artifact.InMemoryService()
472+
config := &launcher.Config{
473+
ArtifactService: artifactservice,
474+
SessionService: sessionService,
475+
AgentLoader: agentLoader,
476+
}
477+
478+
l := full.NewLauncher()
479+
if err = l.Execute(ctx, config, os.Args[1:]); err != nil {
480+
log.Fatalf("Run failed: %v\n\n%s", err, l.CommandLineSyntax())
481+
}
482+
}
483+
```
484+
277485
=== "环境变量"
278486

279487
环境变量列表:

0 commit comments

Comments
 (0)