Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

🔮[RFC #0002]: OpenIM Custom Service Proposal #4

Open
IRONICBo opened this issue Jun 8, 2023 · 4 comments
Open

🔮[RFC #0002]: OpenIM Custom Service Proposal #4

IRONICBo opened this issue Jun 8, 2023 · 4 comments
Assignees
Labels
enhancement New feature or request openim User information, template information, important information, never expired and closed.
Milestone

Comments

@IRONICBo
Copy link
Collaborator

IRONICBo commented Jun 8, 2023

[RFC openimsdk/open-im-server#2] OpenIM Custom Service Proposal

Meta

  • Name: openIM custom service proposal
  • Start Date: 2023-06-08
  • Author: IRONICBo
  • Status: Draft
  • RFC Pull Request:
  • OpenIMSDK Pull Request:
  • OpenIMSDK Issue:
  • Supersedes:

Topics

Summary

OpenIM-based open source online customer service system: Online customer service system is one of the important means for many enterprises to provide services and support to their customers. This project intends to develop an online customer service system based on the open source OpenIM instant messaging system, and introduce a large model to build a local knowledge base Q&A Bot. The system will provide online customer service, after-the-fact callback, customer management and other functions to help enterprises improve customer service quality and efficiency.

Definitions

  • Custom service: A customer service system is a software platform that helps businesses efficiently manage and resolve customer inquiries and issues.
  • LangChain: LangChain is a framework for developing applications powered by language models.
  • ChatGLM: ChatGLM-6B is an open source, bilingual conversational language model based on the General Language Model (GLM) architecture with 6.2 billion parameters. (with a minimum of 6GB of video memory at the INT4 quantization level).

Motivation

  • Provide reliable customer service customer dialogue system through OpenIM.
  • Access to Slack and Web for users to execute tests immediately.
  • Provides a large language model deployment based on a local knowledge base that can help developers or users quickly locate content.
  • Facilitate secondary development and access to richer features.

What it is

This provides a high level overview of the feature.

  • Define any new terminology.
  • Define the target persona: OpenIMSDK author, OpenIMSDK user, platform operator, platform implementor, and/or project contributor.
  • Explaining the feature largely in terms of examples.
  • If applicable, provide sample error messages, deprecation warnings, or migration guidance.
  • If applicable, describe the differences between teaching this to existing users and new users.

How it Works

The project includes login, user management, session management, platform access management, and local knowledge base management.

Login Module

  • Login with Email & Password
  • Reset password using email

User module

User Roles

  • Administrator - personal information management, team information management, customer service management, report data, platform interface, system information view, Bot management
  • General customer service - personal information management, system information view
  • User - anonymous or platform-docked information

Administrator role

  1. Personal information management
  • Set avatar, nickname, bound email, cell phone number, login password
  1. Team information management
  • Set team name, set team contact, set team contact number
  1. Customer Service Management
  • Set customer service name and email address, set initial password and send to customer service email address
  1. Report data
  • Conversation statistics
    • Including conversation information statistics, satisfaction, processing time
    • Conversation record list
  • Customer service work statistics
    • Customer service information list, including online time, average rating, number of conversations, total words of conversation
  • Different platform access statistics
    • The number of visits, the number of visitors, the number of conversations
  1. Platform docking
  • Slack platform docking settings
  • H5 docking settings
  1. System information view
  • View repository, OpenIM repository, manual
  • View online member list
  • View personal conversation data
  1. Bot Management
  • Set up special customer service - ChatGLM & langChain

Customer service roles

  1. Personal information management
  • Set avatar, nickname, bound mailbox, cell phone number, login password
  1. System information view
  • View repository, OpenIM repository, user manual
  • View online member list
  • View personal conversation data

User role

  • Anonymous questioner on the site or slack

Sessions module

Historical session lookup

  • View information about sessions that have ended.

Active session query

  • Query information about sessions that have been accessed

Session Manager

  • Session transfer, assign to other customer service
  • Proactively end a session

Platform access module

H5

  • Generate anonymous users using local IP
  • Assign customer service according to rotation policy

Slack

  • Generate anonymous users using accounts in slack
  • Assign customer service based on rotation policy

Local knowledge base module

LangChain & ChatGLM model deployment

  • Package python images using Docker and complete model inference calls using HTTP/RPC
  • Split/aggregate markdown files using scripts/API

Migration

Front-end, back-end and AI work needs to be done in the new repository.

Drawbacks

If you need to use a large language model with a local knowledge base, you may need a certain GPU footprint.

Alternatives

If you can't use the local AI model, try turning off this feature or accessing other service providers such as ChatGPT, Claude, etc.

Prior Art

There is now work by others that can be used as a reference for implementation.

Unresolved Questions

  • How can I simplify the process of deployment?
  • How to reduce the CPU/GPU resource usage?
@IRONICBo IRONICBo added the enhancement New feature or request label Jun 8, 2023
Copy link
Contributor

cubxxw commented Jun 8, 2023

lgtm

@cubxxw
Copy link
Contributor

cubxxw commented Jun 8, 2023

@IRONICBo

Front-end, back-end and AI work needs to be done in the new repository.

Nice design. I wanted to ask you:
What is the idea behind the repository design?
How many repositories do we need?

@IRONICBo
Copy link
Collaborator Author

IRONICBo commented Jun 8, 2023

I think several parts can be placed in a complete project. They can be used on demand during deployment, for example, if you don't need local AI deployment, you can leave this part of the image unstarted.

-- openim-custom-service
|_ forend
|_ backend
|_ bot
|_ xxx

@cubxxw cubxxw transferred this issue from openimsdk/open-im-server Jun 19, 2023
@cubxxw cubxxw added this to the openkf-v1.0.0 milestone Jun 21, 2023
@cubxxw cubxxw pinned this issue Jun 24, 2023
@kubbot kubbot modified the milestones: openkf-v0.1.0, openkf-v0.2.0 Jul 12, 2023
@kubbot
Copy link
Contributor

kubbot commented Sep 11, 2023

This issue is stale because it has been open 60 days with no activity. Remove stale label or comment or this will be closed in 7 days.

@kubbot kubbot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Sep 11, 2023
@cubxxw cubxxw added openim User information, template information, important information, never expired and closed. and removed lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. labels Sep 11, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request openim User information, template information, important information, never expired and closed.
Projects
Status: 🏗 In progress
Status: In progress
Development

No branches or pull requests

3 participants