Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 22 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -20,3 +20,25 @@ profile.cov
# Go workspace file
go.work
go.work.sum

# Example binaries and logs
examples/openai/weather_agent
examples/openai/*.log

# Temporary shell scripts (not part of the codebase)
examples/openai/test_llm.sh
examples/openai/test_agent.sh
examples/openai/test_weather.sh

# Temporary documentation files (content is in main README.md)
AGENT_SETUP_CHECKLIST.md
GOAL_STATUS_REPORT.md
README_OPENAI.md
model/openai/VALIDATION.md
model/openai/TEST_SUMMARY.md
model/openai/SESSION_USAGE.md
model/openai/test_results.txt

# Temporary README files (documentation is in main README.md)
examples/openai/README.md
model/openai/README.md
190 changes: 190 additions & 0 deletions GITHUB_SETUP.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,190 @@
# GitHub Repository Setup Instructions

## 📝 Repository Description

Зайди в настройки репозитория на GitHub и заполни следующие поля:

### About Section

**Description (короткое описание):**
```
OpenAI adapter for Google ADK-Go - Run AI agents on local LLMs (LM Studio, Ollama) and OpenAI API with multi-turn tool calling
```

**Website:**
```
https://github.com/babasha/adk-go_openai
```

**Topics (теги):**
```
go
golang
ai-agents
llm
openai
local-llm
gemini
adk
tool-calling
lm-studio
ollama
ai
agents
multi-agent
chatbot
streaming
sse
genai
```

---

## 🏷️ GitHub Topics

Добавь эти топики в репозиторий (Settings → About → Topics):

1. `go` - Основной язык
2. `golang` - Альтернативное название
3. `ai-agents` - AI агенты
4. `llm` - Large Language Models
5. `openai` - OpenAI совместимость
6. `local-llm` - Локальные LLM
7. `gemini` - Google Gemini
8. `adk` - Agent Development Kit
9. `tool-calling` - Function/Tool calling
10. `lm-studio` - LM Studio поддержка
11. `ollama` - Ollama поддержка
12. `ai` - Искусственный интеллект
13. `agents` - Агенты
14. `multi-agent` - Мульти-агентные системы
15. `chatbot` - Чат-боты
16. `streaming` - Потоковая передача
17. `sse` - Server-Sent Events
18. `genai` - Generative AI

---

## 🎨 Social Preview Image (опционально)

Можешь создать красивую картинку для social preview:
- Размер: 1280x640 px
- Формат: PNG или JPG
- Содержание: Логотип ADK + текст "OpenAI Adapter" + иконки LM Studio/Ollama

---

## 📋 Repository Settings

### General Settings
- ✅ **Include in the home page:** Yes
- ✅ **Sponsorships:** Disabled
- ✅ **Preserve this repository:** No
- ✅ **Template repository:** No

### Features
- ✅ **Wikis:** Disabled (используем README)
- ✅ **Issues:** Enabled
- ✅ **Sponsorships:** Disabled
- ✅ **Projects:** Disabled
- ✅ **Preserve this repository:** No
- ✅ **Discussions:** Optional (можно включить для Q&A)

### Pull Requests
- ✅ **Allow merge commits:** Yes
- ✅ **Allow squash merging:** Yes
- ✅ **Allow rebase merging:** Yes
- ✅ **Always suggest updating pull request branches:** Yes
- ✅ **Automatically delete head branches:** Yes

---

## 🔗 Links to Add

### README Badges (уже добавлены)
- License badge
- Go version badge
- Build status (если настроен CI/CD)

### Useful Links в About Section
- 📖 **Documentation:** Link to README
- 💬 **Reddit:** r/agentdevelopmentkit
- 🌐 **Original ADK:** https://github.com/google/adk-go

---

## 📢 Announcement

После настройки можешь создать Release v0.1.0 с описанием:

**Release Title:** `v0.1.0 - OpenAI Adapter for Local LLMs`

**Release Notes:**
```markdown
# 🎉 Initial Release: OpenAI Adapter for ADK-Go

First public release of the OpenAI adapter extension for Google's ADK-Go.

## ✨ Features

- ✅ Multi-turn tool calling with conversation history
- ✅ Streaming responses via Server-Sent Events (SSE)
- ✅ Session management with automatic TTL cleanup
- ✅ Comprehensive error handling with exponential backoff
- ✅ Support for local LLMs (LM Studio, Ollama)
- ✅ Full OpenAI API compatibility

## 🤖 Supported Models

- Google Gemma 3 (12B, 4B) - **Recommended**
- OpenAI GPT-4, GPT-3.5-turbo
- Mistral 7B (limited tool support)

## 📦 Installation

\`\`\`bash
go get google.golang.org/adk@latest
\`\`\`

## 🚀 Quick Start

\`\`\`bash
cd examples/openai
go build -o weather_agent main.go
./weather_agent console
\`\`\`

## 📊 Testing

- 146 unit & integration tests
- 74.8% code coverage
- Chaos tests for fault tolerance
- Integration tests with real LLMs

## 🙏 Credits

Built on top of [google/adk-go](https://github.com/google/adk-go)
```

---

## ✅ Checklist

- [ ] Обновить About Description
- [ ] Добавить Topics/Tags
- [ ] Проверить что README красиво отображается
- [ ] Создать Release v0.1.0
- [ ] (Опционально) Добавить Social Preview Image
- [ ] (Опционально) Включить Discussions
- [ ] Запушить обновленный README

---

## 📝 Next Steps

После настройки репозитория можешь:

1. **Поделиться на Reddit** r/agentdevelopmentkit
2. **Написать статью** на Medium/Dev.to
3. **Создать демо-видео** на YouTube
4. **Добавить в awesome списки** (awesome-go, awesome-ai-agents)
82 changes: 82 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,88 @@ This Go version of ADK is ideal for developers building cloud-native agent appli

---

## 🆕 OpenAI Adapter for Local LLMs

**This fork adds OpenAI-compatible adapter support**, enabling you to run ADK agents on:
- 🖥️ **Local LLMs** (LM Studio, Ollama)
- ☁️ **OpenAI API** (GPT-4, GPT-3.5-turbo)
- 🔧 **Any OpenAI-compatible endpoint**

### ✨ Features
- ✅ **Multi-turn tool calling** - Full conversation flow with tool execution
- ✅ **Streaming responses** - Server-Sent Events (SSE) for real-time output
- ✅ **Session management** - Automatic conversation history with TTL
- ✅ **Error handling** - Exponential backoff, rate limiting, retry logic
- ✅ **Comprehensive testing** - 146 tests, 74.8% coverage

### 🚀 Quick Start

**1. Setup Local LLM** (LM Studio recommended)
```bash
# Download LM Studio from https://lmstudio.ai/
# Load google/gemma-3-12b model
# Start local server on port 1234
```

**2. Run Example**
```bash
cd examples/openai
go build -o weather_agent main.go
./weather_agent console
```

**3. Try it**
```
> What's the weather in London?
Agent: The weather in London is sunny with a temperature of 22°C...
```

### 📦 Usage

```go
import "google.golang.org/adk/model/openai"

// Create OpenAI model adapter
model, err := openai.NewModel("google/gemma-3-12b", &openai.Config{
BaseURL: "http://localhost:1234/v1",
})
if err != nil {
// Handle error
}

// Create agent with tools
agent, err := llmagent.New(llmagent.Config{
Name: "my_assistant",
Model: model,
Tools: []tool.Tool{/* your tools */},
})
if err != nil {
// Handle error
}
```

### 🏗️ Architecture

```
model/openai/
├── openai.go # Main adapter implementation
├── streaming.go # SSE streaming support
├── converters.go # ADK ↔ OpenAI format conversion
├── tool_executor.go # Tool execution engine
├── session.go # Session management
└── error_handling.go # Retry & error logic
```

### 🤖 Supported Models

| Model | Provider | Tool Calling | Status |
|-------|----------|--------------|--------|
| Gemma 3 (12B, 4B) | Google | ✅ Full | ✅ Recommended |
| GPT-4 | OpenAI | ✅ Full | ✅ Recommended |
| Mistral 7B | Mistral | ⚠️ Limited | ✅ Works |

---

## ✨ Key Features

* **Idiomatic Go:** Designed to feel natural and leverage the power of Go.
Expand Down
Loading