diff --git a/LINKS.md b/LINKS.md index fbc7fe4..99c7f6a 100644 --- a/LINKS.md +++ b/LINKS.md @@ -8,11 +8,22 @@ ## LangChain4J -- [LangChain4J](https://docs.langchain4j.dev/) [GitHub](https://github.com/langchain4j/langchain4j/) - - [AI Services](https://docs.langchain4j.dev/tutorials/ai-services) - - [RAG](https://docs.langchain4j.dev/tutorials/rag) - - [Kotlin support](https://docs.langchain4j.dev/tutorials/kotlin) - +[LangChain4J](https://docs.langchain4j.dev/) ([GitHub](https://github.com/langchain4j/langchain4j/)) is a Java library for building AI agents. +- [langchain4j-kotlin](https://github.com/langchain4j/langchain4j/tree/main/langchain4j-kotlin) - Official LangChain4j Kotlin extensions +- [github.com/kpavlov/langchain4j-kotlin](https://github.com/kpavlov/langchain4j-kotlin) - Unofficial LangChain4j Kotlin extensions. Many of them have already become official 😎 +- [Tutorials](https://docs.langchain4j.dev/tutorials) + - [AI Services](https://docs.langchain4j.dev/tutorials/ai-services) Higher-level declarative AI integration. + - [RAG](https://docs.langchain4j.dev/tutorials/rag) - Retrieval-Augmented Generation + - [Kotlin support](https://docs.langchain4j.dev/tutorials/kotlin) in LangChain4j + +## AI Frameworks + +- [Spring AI](https://spring.io/projects/spring-ai) - Spring AI is an application framework for AI engineering. +- [Eclipse LMOS](https://eclipse.dev/lmos/) - Open-source, cloud-native platform for building and running Multi-Agent systems +- [JetBrains Koog](https://docs.koog.ai/) - Koog is a Kotlin-based framework designed to build and run AI agents entirely in idiomatic Kotlin. It lets you create agents that can interact with tools, handle complex workflows, and communicate with users. +- [Embabel Agent Framework](https://github.com/embabel/embabel-agent) Kotlin framework for authoring agentic flows on the JVM that seamlessly mix LLM-prompted interactions with code and domain models. Supports intelligent path finding towards goals using [Goal Oriented Action Planning (GOAF)](https://medium.com/@vedantchaudhari/goal-oriented-action-planning-34035ed40d0b) algorithm. Written in Kotlin but offers a natural usage model from Java. From [Rod Johnson](https://github.com/johnsonr), the creator of Spring. +- [Xef.ai](https://github.com/xebia-functional/xef) - is an open-source, multiplatform library designed to simplify the integration of modern AI capabilities, such as large language models and image generation, into applications or services. + ## Promptfoo [promptfoo](https://www.promptfoo.dev/docs/intro/) is an open-source CLI and library for evaluating and red-teaming LLM apps. @@ -20,14 +31,26 @@ ## Resources - [Retrieval-augmented generation (RAG)](https://en.wikipedia.org/wiki/Retrieval-augmented_generation) -- Blog post: ["Building effective agents"](https://www.anthropic.com/engineering/building-effective-agents) by Anthropic -- ["Agentic AI with Quarkus"](https://github.com/mariofusco/quarkus-agentic-ai) by Mario Fusco +- Blog post: ["Building effective agents"](https://www.anthropic.com/engineering/building-effective-agents) by Anthropic. Reference + implementations: [anthropic-cookbook/patterns/agents](https://github.com/anthropics/anthropic-cookbook/tree/main/patterns/agents). + +- "Agentic AI with Quarkus" by Mario Fusco + - Part 1: [quarkus.io/blog/agentic-ai-with-quarkus](https://quarkus.io/blog/agentic-ai-with-quarkus/) + - Part 2: [quarkus.io/blog/agentic-ai-with-quarkus-p2](https://quarkus.io/blog/agentic-ai-with-quarkus-p2) + - Repository: ["Agentic AI with Quarkus"](https://github.com/mariofusco/quarkus-agentic-ai) + - [Model Context Protocol (MCP)](https://modelcontextprotocol.io/) - [Awesome MCP Servers](https://mcpservers.org/) - A collection of servers for the Model Context Protocol. -- [github.com/kpavlov/langchain4j-kotlin](https://github.com/kpavlov/langchain4j-kotlin) - Unofficial LangChain4j Kotlin extensions -- [mokksy.dev](https://mokksy.dev/) - AI services simulators for Integration testing +- OpenAI Responses API + - ["New tools for building agents"](https://openai.com/index/new-tools-for-building-agents/) + - [OpenAI Responses API](https://platform.openai.com/docs/api-reference/responses) + - [Responses vs Chat Completions](https://platform.openai.com/docs/guides/responses-vs-chat-completions) + + ## Tools - -[gitleaks](https://github.com/gitleaks/gitleaks) - Gitleaks is a tool for detecting secrets like passwords, API keys, and tokens in git repos, files, and whatever else you wanna throw at it via stdin. +- [Mokksy](https://mokksy.dev/) - HTTP/SSE and AI/LLM services simulators for integration testing. +- [Finchly](https://github.com/kpavlov/finchly) - Utilities for streamlining integration testing in Kotlin +- [MCP Inspector](https://modelcontextprotocol.io/docs/tools/inspector) is an interactive developer tool for testing and debugging MCP servers. +- [gitleaks](https://github.com/gitleaks/gitleaks) - Gitleaks is a tool for detecting secrets like passwords, API keys, and tokens in git repos, files, and whatever else you wanna throw at it via stdin. Detect your secrets before you commit code to a repo! diff --git a/Makefile b/Makefile index d7892f6..c98eda8 100644 --- a/Makefile +++ b/Makefile @@ -20,16 +20,16 @@ run-mcp-docker: mvn -Dquarkus.container-image.group=sample \ -Dquarkus.container-image.tag=latest \ quarkus:image-build && \ - docker run --rm -i -p 8090:8090 sample/mcp-time \ + docker run --rm -i -p 8090:8090 sample/mcp \ ) .PHONY: promptfoo promptfoo: - (cd promptfoo && promptfoo eval --watch --output output.yml --no-progress-bar --env-file ./.env) + (cd promptfoo && promptfoo eval --watch --output output.yml --no-progress-bar --env-file .env) .PHONY: promptfoo-ui promptfoo-ui: - (cd promptfoo && promptfoo view --yes --env-file ./.env) + (cd promptfoo && promptfoo view --yes --env-file .env) lint:prepare ktlint "!**/target/**" diff --git a/docs/promptfoo-results-cli.png b/docs/promptfoo-results-cli.png index f3591d7..ea1e906 100644 Binary files a/docs/promptfoo-results-cli.png and b/docs/promptfoo-results-cli.png differ diff --git a/docs/promptfoo-ui.png b/docs/promptfoo-ui.png index 85291a5..093bafb 100644 Binary files a/docs/promptfoo-ui.png and b/docs/promptfoo-ui.png differ diff --git a/docs/web-ui.png b/docs/web-ui.png index 49d399b..f33fde4 100644 Binary files a/docs/web-ui.png and b/docs/web-ui.png differ diff --git a/mcp/pom.xml b/mcp/pom.xml index 8ae5e35..090536a 100644 --- a/mcp/pom.xml +++ b/mcp/pom.xml @@ -4,8 +4,8 @@ 4.0.0 com.example - mcp-time - Quarkus MCP Time Server + mcp + Quarkus MCP Server 1.0-SNAPSHOT jar diff --git a/mcp/src/main/kotlin/mcp/HelloTool.kt b/mcp/src/main/kotlin/mcp/HelloTool.kt index de4687b..1dd71b5 100644 --- a/mcp/src/main/kotlin/mcp/HelloTool.kt +++ b/mcp/src/main/kotlin/mcp/HelloTool.kt @@ -7,9 +7,9 @@ import io.quarkiverse.mcp.server.ToolArg class HelloTool { - @Tool(name = "hello", description = "Says hello to someone") - fun time( - @ToolArg(description = "Who you want to be greeted") + @Tool(description = "Returns a greeting for a given target") + fun hello( + @ToolArg(description = "The name or identifier to greet") who: String ): String = "Hello, $who" } diff --git a/promptfoo/promptfooconfig.yaml b/promptfoo/promptfooconfig.yaml index ec30531..4759163 100644 --- a/promptfoo/promptfooconfig.yaml +++ b/promptfoo/promptfooconfig.yaml @@ -10,7 +10,7 @@ defaultTest: scenarios: - file://scenarios/chat-memory.yaml - - file://scenarios/time.yaml + - file://scenarios/moderation.yaml - file://scenarios/rag.yaml - file://scenarios/stocks.yaml - - file://scenarios/moderation.yaml + - file://scenarios/time.yaml