docker-compose.yml 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230
  1. version: '3.8'
  2. services:
  3. api:
  4. image: samepaage/open-assistant-api:main
  5. restart: always
  6. build: .
  7. volumes:
  8. - ./volumes/logs/api:/app/logs
  9. networks:
  10. - r2r-network
  11. ports:
  12. - '8086:8086'
  13. environment:
  14. # app
  15. MODE: api
  16. APP_NAME: open-assistant-api
  17. APP_DEBUG: true
  18. APP_ENV: prod
  19. APP_SERVER_WORKERS: 20
  20. APP_API_PREFIX: /api
  21. APP_AUTH_ENABLE: false
  22. APP_AUTH_ADMIN_TOKEN: cocorobo-xjw-admin
  23. LOG_LEVEL: DEBUG
  24. # celery
  25. CELERY_BROKER_URL: redis://:123456@redis:6379/1
  26. MIGRATION_ENABLED: true
  27. # database
  28. DB_HOST: db
  29. DB_PORT: 3306
  30. DB_DATABASE: open_assistant
  31. DB_USER: open_assistant
  32. DB_PASSWORD: 123456
  33. DB_POOL_SIZE: 20
  34. DB_POOL_RECYCLE: 3600
  35. # redis
  36. REDIS_HOST: redis
  37. REDIS_PORT: 6379
  38. REDIS_DB: 0
  39. REDIS_PASSWORD: 123456
  40. # s3 storage
  41. S3_ENDPOINT: http://minio:9000
  42. S3_BUCKET_NAME: oas
  43. S3_ACCESS_KEY: minioadmin
  44. S3_SECRET_KEY: minioadmin
  45. S3_REGION: us-east-1
  46. # file service
  47. #FILE_SERVICE_MODULE: app.services.file.impl.oss_file.OSSFileService
  48. FILE_SERVICE_MODULE: app.services.file.impl.r2r_file.R2RFileService
  49. # file search tool
  50. R2R_BASE_URL: http://r2r:7272
  51. R2R_USERNAME: admin@example.com
  52. R2R_PASSWORD: change_me_immediately
  53. R2R_SEARCH_LIMIT: 20
  54. # secret
  55. APP_AES_ENCRYPTION_KEY: 7700b2f9c8dd982dfaddf8b47a92f1d900507ee8ac335f96a64e9ca0f018b195
  56. depends_on:
  57. - db
  58. - redis
  59. - minio
  60. worker:
  61. image: samepaage/open-assistant-api:main
  62. restart: always
  63. build: .
  64. networks:
  65. - r2r-network
  66. volumes:
  67. - ./volumes/logs/worker:/app/logs
  68. environment:
  69. # app
  70. MODE: worker
  71. APP_DEBUG: true
  72. APP_ENV: prod
  73. APP_AUTH_ENABLE: false
  74. APP_AUTH_ADMIN_TOKEN: cocorobo-xjw-admin
  75. LOG_LEVEL: DEBUG
  76. # celery
  77. CELERY_BROKER_URL: redis://:123456@redis:6379/1
  78. CELERY_WORKERS: 20
  79. # database
  80. DB_HOST: db
  81. DB_PORT: 3306
  82. DB_DATABASE: open_assistant
  83. DB_USER: open_assistant
  84. DB_PASSWORD: 123456
  85. DB_POOL_SIZE: 20
  86. DB_POOL_RECYCLE: 3600
  87. # redis
  88. REDIS_HOST: redis
  89. REDIS_PORT: 6379
  90. REDIS_DB: 0
  91. REDIS_PASSWORD: 123456
  92. # s3 storage
  93. S3_ENDPOINT: http://minio:9000
  94. S3_BUCKET_NAME: oas
  95. S3_ACCESS_KEY: minioadmin
  96. S3_SECRET_KEY: minioadmin
  97. S3_REGION: us-east-1
  98. # llm
  99. OPENAI_API_BASE: https://onehub.cocorobo.cn/v1
  100. OPENAI_API_KEY: sk-vTqeBKDC2j6osbGt89A2202dAd1c4fE8B1D294388b569e54
  101. LLM_MAX_STEP: 2500
  102. # tool
  103. TOOL_WORKER_NUM: 10
  104. TOOL_WORKER_EXECUTION_TIMEOUT: 180
  105. # web search tool
  106. BING_SEARCH_URL: https://www.searchapi.io/api/v1/search
  107. BING_SUBSCRIPTION_KEY: ZYLf8VLMoW8QRJ86bXEec9rX
  108. WEB_SEARCH_NUM_RESULTS: 50
  109. # file service
  110. #FILE_SERVICE_MODULE: app.services.file.impl.oss_file.OSSFileService
  111. FILE_SERVICE_MODULE: app.services.file.impl.r2r_file.R2RFileService
  112. # file search tool
  113. R2R_BASE_URL: http://r2r:7272
  114. R2R_USERNAME: admin@example.com
  115. R2R_PASSWORD: change_me_immediately
  116. R2R_SEARCH_LIMIT: 20 # secret
  117. APP_AES_ENCRYPTION_KEY: 7700b2f9c8dd982dfaddf8b47a92f1d900507ee8ac335f96a64e9ca0f018b195
  118. depends_on:
  119. - db
  120. - redis
  121. - minio
  122. playground-ui:
  123. image: samepaage/open-assistant-playground-ui:main
  124. restart: always
  125. build:
  126. context: ./playground-ui
  127. networks:
  128. - r2r-network
  129. ports:
  130. - "8090:80"
  131. depends_on:
  132. - api
  133. db:
  134. image: mysql:5.7.44
  135. platform: linux/x86_64
  136. restart: always
  137. volumes:
  138. - ./volumes/mysql/data:/var/lib/mysql
  139. networks:
  140. - r2r-network
  141. ports:
  142. - '3307:3306'
  143. environment:
  144. MYSQL_ROOT_PASSWORD: 'open-assistant-api@2023'
  145. MYSQL_USER: open_assistant
  146. MYSQL_PASSWORD: '123456'
  147. MYSQL_DATABASE: open_assistant
  148. # TZ: Asia/Shanghai
  149. command: [ 'mysqld', '--character-set-server=utf8mb4', '--collation-server=utf8mb4_unicode_ci' ]
  150. healthcheck:
  151. test: [ "CMD", "mysqladmin", "ping", "-h", "localhost" ]
  152. timeout: 20s
  153. retries: 10
  154. redis:
  155. image: redis:6-alpine
  156. platform: linux/x86_64
  157. restart: always
  158. networks:
  159. - r2r-network
  160. volumes:
  161. - ./volumes/redis/data:/data
  162. ports:
  163. - '6379:6379'
  164. command: redis-server --requirepass 123456
  165. healthcheck:
  166. test: [ "CMD", "redis-cli", "ping" ]
  167. minio:
  168. image: minio/minio:RELEASE.2023-03-20T20-16-18Z
  169. platform: linux/x86_64
  170. restart: always
  171. volumes:
  172. - ./volumes/minio/data:/minio_data
  173. networks:
  174. - r2r-network
  175. ports:
  176. - '9001:9001'
  177. - '9000:9000'
  178. environment:
  179. MINIO_ACCESS_KEY: minioadmin
  180. MINIO_SECRET_KEY: minioadmin
  181. command: minio server /minio_data --console-address ':9001'
  182. healthcheck:
  183. test: [ "CMD", "curl", "-f", "http://localhost:9000/minio/health/live" ]
  184. interval: 30s
  185. timeout: 20s
  186. retries: 3
  187. create-buckets:
  188. image: minio/mc
  189. platform: linux/x86_64
  190. environment:
  191. MINIO_ACCESS_KEY: minioadmin
  192. MINIO_SECRET_KEY: minioadmin
  193. BUCKET_NAME: 'oas'
  194. depends_on:
  195. - minio
  196. entrypoint: >
  197. /bin/sh -c " /usr/bin/mc alias set minio http://minio:9000 $${MINIO_ACCESS_KEY} $${MINIO_SECRET_KEY}; /usr/bin/mc mb -p minio/$${BUCKET_NAME}; exit 0; "
  198. networks:
  199. r2r-network:
  200. external: true