Skip to content
Merged
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
79 changes: 79 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -132,3 +132,82 @@ fastapi: ## run FastAPI in production mode
streamlit: ## run Streamlit
uv run streamlit run \
template_langgraph/services/streamlits/main.py

# ---
# Project / Create indices
# ---

.PHONY: create-cosmosdb-index
create-cosmosdb-index: ## create Cosmos DB index
uv run python scripts/cosmosdb_operator.py --help
uv run python scripts/cosmosdb_operator.py add-documents --verbose
uv run python scripts/cosmosdb_operator.py similarity-search --query "禅モード" --k 3 --verbose

.PHONY: create-ai-search-index
create-ai-search-index: ## create Azure AI Search index
uv run python scripts/ai_search_operator.py --help
uv run python scripts/ai_search_operator.py add-documents --verbose
uv run python scripts/ai_search_operator.py similarity-search --query "禅モード" --k 3 --verbose

COLLECTION_NAME ?= qa_kabuto
.PHONY: create-qdrant-index
create-qdrant-index: ## create Qdrant index
uv run python scripts/qdrant_operator.py --help
uv run python scripts/qdrant_operator.py delete-collection --collection-name $(COLLECTION_NAME) --verbose
uv run python scripts/qdrant_operator.py add-documents --collection-name $(COLLECTION_NAME) --verbose
uv run python scripts/qdrant_operator.py search-documents --collection-name $(COLLECTION_NAME) --verbose --question "「鬼灯」を実行すると、KABUTOが急に停止します。原因と対策を教えてください。"

INDEX_NAME ?= docs_kabuto
.PHONY: create-elasticsearch-index
create-elasticsearch-index: ## create Elasticsearch index
uv run python scripts/elasticsearch_operator.py --help
uv run python scripts/elasticsearch_operator.py delete-index --index-name $(INDEX_NAME) --verbose
uv run python scripts/elasticsearch_operator.py create-index --index-name $(INDEX_NAME) --verbose
uv run python scripts/elasticsearch_operator.py add-documents --index-name $(INDEX_NAME) --verbose
uv run python scripts/elasticsearch_operator.py search-documents --index-name $(INDEX_NAME) --verbose --query "禅モード"

# ---
# Project / Run agents
# ---
QUESTION ?= "KABUTOの起動時に、画面全体が紫色に点滅し、システムがフリーズします。KABUTO のマニュアルから、関連する情報を取得したり過去のシステムのトラブルシュート事例が蓄積されたデータベースから、関連する情報を取得して質問に答えてください"
.PHONY: run-chat-with-tools-agent
run-chat-with-tools-agent: ## run chat with tools agent
uv run python scripts/agent_operator.py run \
--name chat_with_tools_agent \
--question $(QUESTION) \
--verbose

.PHONY: run-image-classifier-agent
run-image-classifier-agent: ## run image classifier agent
uv run python scripts/agent_operator.py image-classifier-agent \
--prompt "この画像の中身を 3 行で日本語で説明してください" \
--file-paths "docs/images/fastapi.png,docs/images/streamlit.png" \
--verbose

.PHONY: run-issue-formatter-agent
run-issue-formatter-agent: ## run issue formatter agent
uv run python scripts/agent_operator.py run \
--name issue_formatter_agent \
--question "KABUTOにログインできない。パスワードは合ってるはずなのに…若手社員である山田太郎は、Windows 11 を立ち上げ、日課のように自社の業務システムKABUTOのログイン画面を開きます。しかし、そこには、意味をなさない「虚無」という文字だけがただひっそりと表示されていたのです。これは質問でもあり不具合の報告でもあります。岡本太郎さんに本件調査依頼します。" \
--verbose

.PHONY: run-kabuto-helpdesk-agent
run-kabuto-helpdesk-agent: ## run kabuto helpdesk agent
uv run python scripts/agent_operator.py run \
--name kabuto_helpdesk_agent \
--question $(QUESTION) \
--verbose

.PHONY: run-news-summarizer-agent
run-news-summarizer-agent: ## run news summarizer agent
uv run python scripts/agent_operator.py news-summarizer-agent \
--prompt "こちらの文章を 3 行で日本語で要約してください。" \
--urls "https://raw.githubusercontent.com/ks6088ts-labs/template-langgraph/refs/heads/main/docs/index.md,https://raw.githubusercontent.com/ks6088ts-labs/template-langgraph/refs/heads/main/docs/deployment.md" \
--verbose

.PHONY: run-task-decomposer-agent
run-task-decomposer-agent: ## run task decomposer agent
uv run python scripts/agent_operator.py run \
--name task_decomposer_agent \
--question "KABUTOにログインできない。パスワードは合ってるはずなのに…若手社員である山田太郎は、Windows 11 を立ち上げ、日課のように自社の業務システムKABUTOのログイン画面を開きます。しかし、そこには、意味をなさない「虚無」という文字だけがただひっそりと表示されていたのです。これは質問でもあり不具合の報告でもあります。岡本太郎さんに本件調査依頼します。" \
--verbose
39 changes: 0 additions & 39 deletions docs/deployment.ja.md

This file was deleted.

64 changes: 64 additions & 0 deletions docs/deployment.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,70 @@ To quickly deploy the application, [Deploy to Azure button](https://learn.micros

[![Deploy to Azure](https://aka.ms/deploytoazurebutton)](https://portal.azure.com/#create/Microsoft.Template/uri/https%3A%2F%2Fraw.githubusercontent.com%2Fks6088ts-labs%2Fbaseline-environment-on-azure-bicep%2Frefs%2Fheads%2Fmain%2Finfra%2Fscenarios%2Ftemplate-langgraph%2Fazuredeploy.json)

### Create index

#### On Azure

```shell
# Cosmos DB
make create-cosmosdb-index

# Azure AI Search
make create-ai-search-index
```

#### On Docker

```shell
rm -rf assets/

# Launch Docker containers
docker compose up -d --wait

# Qdrant
make create-qdrant-index

# Elasticsearch
make create-elasticsearch-index
```

### Agents

#### Create agent graph in png format

```shell
## Draw agent graph
mkdir -p generated
AGENT_NAMES=(
"chat_with_tools_agent"
"image_classifier_agent"
"issue_formatter_agent"
"kabuto_helpdesk_agent"
"news_summarizer_agent"
"task_decomposer_agent"
)
for AGENT_NAME in "${AGENT_NAMES[@]}"; do
uv run python scripts/agent_operator.py png --name "$AGENT_NAME" --verbose --output "generated/${AGENT_NAME}.png" &
done
wait
```

#### Run agents

```shell
NAME_QUESTION_ARRAY=(
"chat_with_tools_agent:KABUTOの起動時に、画面全体が紫色に点滅し、システムがフリーズします。KABUTO のマニュアルから、関連する情報を取得したり過去のシステムのトラブルシュート事例が蓄積されたデータベースから、関連する情報を取得して質問に答えてください"
"issue_formatter_agent:KABUTOにログインできない!パスワードは合ってるはずなのに…若手社員である山田太郎は、Windows 11 を立ち上げ、日課のように自社の業務システムKABUTOのログイン画面を開きます。しかし、そこには、意味をなさない「虚無」という文字だけがただひっそりと表示されていたのです。これは質問でもあり不具合の報告でもあります。岡本太郎さんに本件調査依頼します。"
"kabuto_helpdesk_agent:天狗のいたずら という現象について KABUTO のマニュアルから、関連する情報を取得したり過去のシステムのトラブルシュート事例が蓄積されたデータベースから、関連する情報を取得して質問に答えてください"
"task_decomposer_agent:KABUTOにログインできない!パスワードは合ってるはずなのに…若手社員である山田太郎は、Windows 11 を立ち上げ、日課のように自社の業務システムKABUTOのログイン画面を開きます。しかし、そこには、意味をなさない「虚無」という文字だけがただひっそりと表示されていたのです。これは質問でもあり不具合の報告でもあります。岡本太郎さんに本件調査依頼します。"
)
for NAME_QUESTION in "${NAME_QUESTION_ARRAY[@]}"; do
IFS=':' read -r AGENT_NAME QUESTION <<< "$NAME_QUESTION"
echo "Running agent: $AGENT_NAME with question: $QUESTION"
uv run python scripts/agent_operator.py run --name "$AGENT_NAME" --verbose --question "$QUESTION"
done
```

### Docker Hub

To publish the docker image to Docker Hub, you need to [create access token](https://app.docker.com/settings/personal-access-tokens/create) and set the following secrets in the repository settings.
Expand Down
Loading