Open29

Difyインフラキャッチアップ

merutinmerutin

terraformのcdkだと以下のもある
https://github.com/sonodar/dify-aws-terraform

merutinmerutin

pgvectorは

CREATE EXTENSION vector;

を実行するとvectorが利用できるようになる

merutinmerutin

docker composeでデフォルトのままで起動すると以下のコンテナが起動する

NAME                     IMAGE                                       COMMAND                  SERVICE         CREATED         STATUS                   PORTS
docker-api-1             langgenius/dify-api:1.1.3                   "/bin/bash /entrypoi…"   api             2 minutes ago   Up 2 minutes             5001/tcp
docker-db-1              postgres:15-alpine                          "docker-entrypoint.s…"   db              2 minutes ago   Up 2 minutes (healthy)   5432/tcp
docker-nginx-1           nginx:latest                                "sh -c 'cp /docker-e…"   nginx           2 minutes ago   Up 2 minutes             0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp
docker-plugin_daemon-1   langgenius/dify-plugin-daemon:0.0.6-local   "/bin/bash -c /app/e…"   plugin_daemon   2 minutes ago   Up 2 minutes             0.0.0.0:5003->5003/tcp
docker-redis-1           redis:6-alpine                              "docker-entrypoint.s…"   redis           2 minutes ago   Up 2 minutes (healthy)   6379/tcp
docker-sandbox-1         langgenius/dify-sandbox:0.2.11              "/main"                  sandbox         2 minutes ago   Up 2 minutes (healthy)
docker-ssrf_proxy-1      ubuntu/squid:latest                         "sh -c 'cp /docker-e…"   ssrf_proxy      2 minutes ago   Up 2 minutes             3128/tcp
docker-weaviate-1        semitechnologies/weaviate:1.19.0            "/bin/weaviate --hos…"   weaviate        2 minutes ago   Up 2 minutes
docker-web-1             langgenius/dify-web:1.1.3                   "/bin/sh ./entrypoin…"   web             2 minutes ago   Up 2 minutes             3000/tcp
docker-worker-1          langgenius/dify-api:1.1.3                   "/bin/bash /entrypoi…"   worker          2 minutes ago   Up 2 minutes             5001/tcp
merutinmerutin

squidはプロキシサーバー。nginxでいい気がするんだけど、なんであるんだろう

merutinmerutin

difyっぽいのは

  • web

  • api

  • worker

  • sandbox

  • dify-plugin-daemon

    くらいか

merutinmerutin

postgresql、Redis、nginxはいったんいいとして別の部分を調べる。

merutinmerutin

ログインしてない場合のユーザーはどこで持っているんだろうと思っていたが、JWTの中で保持しているらしい。

とあるアプリケーションを公開したときのauthorization Header

Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiI5ZTFmOWI5MS1mM2UxLTQ0MDQtYmE3Yy1iOWY0ZTQzOGZjMjQiLCJzdWIiOiJXZWIgQVBJIFBhc3Nwb3J0IiwiYXBwX2lkIjoiOWUxZjliOTEtZjNlMS00NDA0LWJhN2MtYjlmNGU0MzhmYzI0IiwiYXBwX2NvZGUiOiI2WDBJS29pUWZ4eUZENm9qIiwiZW5kX3VzZXJfaWQiOiI4NWEyZWYzZC0zOGMzLTRlNDUtYWQyZS02MDlmZGQ2NTRkMzIifQ.nyBS0bX3oAikcJfUVdzBv3CMuIG-h8xhdeTf9K5ifSQ
merutinmerutin

ペイロードは以下のようになる

{
  "iss": "9e1f9b91-f3e1-4404-ba7c-b9f4e438fc24",
  "sub": "Web API Passport",
  "app_id": "9e1f9b91-f3e1-4404-ba7c-b9f4e438fc24",
  "app_code": "6X0IKoiQfxyFD6oj",
  "end_user_id": "85a2ef3d-38c3-4e45-ad2e-609fdd654d32"
}