# 开发个人Ollama-Chat--3 服务拆分
个人`Ollama-Chat`项目可拆分用户服务(user),AI模型服务(AiModel),......
每个服务都可以再分为 `api` 服务和 `rpc` 服务。`api` 服务对外,可提供给 `app` 调用。`rpc` 服务是对内的,可提供给内部 `api` 服务或者其他 `rpc` 服务调用。
## 3.1 用户服务(user)
| `api` 服务 | 端口:8000 | `rpc` 服务 | 端口:9000 |
| --- | --- | --- | --- |
| login | 用户登录接口 | login | 用户登录接口 |
| register | 用户注册接口 | register | 用户注册接口 |
| userinfo | 用户信息接口 | userinfo | 用户信息接口 |
| ....... | ....... | ....... | ....... |
## 3.2 AI模型服务(AiModel)
| `api` 服务 | 端口:8001 | `rpc` 服务 | 端口:9001 |
| --- | --- | --- | --- |
| /ollama/api/tags | ollama models | tags | ollama models |
| /ollama/api/chat | ollama chat | chat | ollama chat |
| chats | 聊天管理 | chats | 聊天管理 |
| ....... | ....... | ....... | ....... |
## 3.3 文件目录
```bash
|-- Dockerfile
|-- LICENSE
|-- common
| |-- callmodel
| | |-- gemma.go
| | `-- models.go
| |-- consts
| | |-- code.go
| | |-- common.go
| | |-- config.go
| | `-- consts.go
| |-- cryptx
| | `-- crypt.go
| |-- curlhttp
| | `-- curl.go
| |-- database
| | |-- common.go
| | |-- connect.go
| | |-- dao.go
| | |-- ormLogx.go
| | |-- redisClient.go
| | `-- redisDao.go
| |-- go.mod
| |-- go.sum
| |-- jwtx
| | `-- jwt.go
| |-- middleware
| | `-- static.go
| |-- model
| | |-- chat.sql
| | |-- chatmodel.go
| | |-- chatmodel_client.go
| | |-- prompt.sql
| | |-- promptmodel.go
| | |-- promptmodel_client.go
| | |-- readMe.md
| | |-- user.sql
| | |-- usermodel.go
| | `-- usermodel_client.go
| `-- utils
| `-- utils.go
|-- docker-compose.yaml
|-- nginx
| `-- conf.d
| `-- default.conf
|-- readme.md
`-- service
|-- chat
| |-- api
| `-- rpc
`-- user
|-- api
`-- rpc
```
## 项目地址
[jackwillsmith/openui-svelte-build (github.com)](https://github.com/jackwillsmith/openui-svelte-build/)
[GitHub - jackwillsmith/openui-backend-go: openui-backend-go](https://github.com/jackwillsmith/openui-backend-go.git)
有疑问加站长微信联系(非本文作者))