Inhaltsverzeichnis
So greifen Sie auf Feishu zu
Erstellen Sie einen Feishu-Roboter
Verbindungslogik und Implementierung
Endlich
Heim Technologie-Peripheriegeräte KI Code beigefügt, detaillierte Schritte zum Verbinden von ChatGPT mit Feishu

Code beigefügt, detaillierte Schritte zum Verbinden von ChatGPT mit Feishu

Apr 14, 2023 pm 12:28 PM
chatgpt 飞书

Code beigefügt, detaillierte Schritte zum Verbinden von ChatGPT mit Feishu

ChatGPT ist in letzter Zeit populär geworden und der Chef ist auch bereit, uns zu bitten, ChatGPT mit Feishu zu verbinden. Nach einem Vormittag der Recherche haben wir uns endlich erfolgreich registriert und implementiert Feishu-Roboter zur Verbindung mit ChatGPT.

Lassen Sie mich die detaillierten Schritte für den Zugriff auf Feishu mit Ihnen teilen.

So greifen Sie auf Feishu zu

Die Interaktion zwischen Feishu und chatgpt ist wie folgt: Unser benutzerdefinierter Dienst fungiert als Vermittler für die Weiterleitung von Nachrichten.

Code beigefügt, detaillierte Schritte zum Verbinden von ChatGPT mit Feishu

Erstellen Sie einen Feishu-Roboter

1. Betreten Sie die offene Feishu-Plattform und wählen Sie die Erstellung einer selbst erstellten Unternehmensanwendung.

Code beigefügt, detaillierte Schritte zum Verbinden von ChatGPT mit Feishu

2 Klicken Sie nach dem Erstellen der Anwendung auf , um die Anwendung aufzurufen und den Roboter hinzuzufügen.

Code beigefügt, detaillierte Schritte zum Verbinden von ChatGPT mit Feishu

3. Wenn Sie nicht sicher sind, welche Berechtigungen erforderlich sind, können Sie sie zuerst alle aktivieren.

Code beigefügt, detaillierte Schritte zum Verbinden von ChatGPT mit Feishu

4, Ereignisabonnement konfigurieren. Für das Event-Abonnement muss zunächst eine Schnittstelle entwickelt werden, die Feishu überprüfen kann. Die Schnittstelle muss über das öffentliche Netzwerk erreichbar sein.

Code beigefügt, detaillierte Schritte zum Verbinden von ChatGPT mit Feishu

Der Code dieser Schnittstelle kann wie folgt bezeichnet werden:

@PostMapping(value = "/message")
public FeishuEventDTO message(@RequestBody String body) {
log.info("收到消息:{}", body);
FeishuEventParams feishuEventParams = JSON.parseObject(body, FeishuEventParams.class);
FeishuEventDTO eventDTO = new FeishuEventDTO();
eventDTO.setChallenge(feishuEventParams.getChallenge());
return eventDTO;
}

@Data
public class FeishuEventParams {

private String challenge;
private String token;
private String type;
}

@Data
public class FeishuEventDTO {
private String challenge;
}
Nach dem Login kopieren

Eine Sache ist zu beachten dass diese Schule Die Verifizierungsschnittstelle hat dieselbe Adresse wie die Schnittstelle unten zum Empfangen von Feishu-Nachrichten, der Nachrichtentext ist jedoch unterschiedlich.

Das heißt, die Verifizierungsschnittstelle ist einmalig und muss nach der Verifizierung geändert werden.

Wir veröffentlichen diese Schnittstelle zunächst in einem Projekt, auf das über das öffentliche Netzwerk zugegriffen werden kann. Die Schnittstellenadresse lautet beispielsweise
​https://www.php. cn/link/ 4aee31b0ec9f7bb7885473d95961e9a6​

Code beigefügt, detaillierte Schritte zum Verbinden von ChatGPT mit Feishu

OK, jetzt ist die Konfiguration von Feishu im Grunde fertig. Hier ist die Logik, die wir verarbeiten müssen .

Verbindungslogik und Implementierung

Lassen Sie mich zunächst als Referenz auf die allgemeine Logik des Andockens unseres Unternehmens eingehen.

Nachdem ein Benutzer eine Nachricht an Feishu gesendet hat, leitet Feishu die Nachricht an unseren eigenen Dienst weiter.

Aber hier wird es ein Problem geben, das heißt, wenn mehrere Benutzer gleichzeitig Gespräche initiieren oder wenn viele Personen in einer großen Gruppe @unserem Roboter sind, müssen wir uns die Antworten aller nach Chatgpt-Anfragen merken Ergebnisse, es wird dieser Person genau antworten.

Da unser Unternehmen es derzeit für interne Tests verwendet und nicht möchte, dass die Implementierung zu kompliziert wird, verfolgen wir die Idee: Wenn die Sitzung jedes Benutzers an unseren Dienst weitergeleitet wird, steht der Sitzungsinhalt an erster Stelle Speichern Sie es in einer globalen ConcurrentLinkedQueue-Warteschlange und starten Sie dann einen Thread, um diese Warteschlange kontinuierlich zu nutzen.

Der generische Warteschlangentyp ist ein im Voraus erstelltes Objekt. Dieses Objekt speichert die Nachrichten-ID der aktuellen Nachricht, den Absender, den Frageinhalt usw.

Jedes Mal, wenn ein Objekt verbraucht wird, wird der Frageinhalt des Objekts an chatgpt gesendet. Nach Erhalt des Antwortergebnisses wird die von Feishu bereitgestellte Konversationsantwortschnittstelle aufgerufen, um dem Benutzer zu antworten. (Wenn die Parallelität relativ groß ist, kann sie hier asynchron gemacht werden).

Okay, das war's für die allgemeine Idee, werfen wir einen Blick auf den spezifischen Code.

1, öffnen Sie unser Projekt und stellen Sie das von chatgpt bereitgestellte Glas vor.

<dependency>
<groupId>com.theokanning.openai-gpt3-java</groupId>
<artifactId>service</artifactId>
<version>0.10.0</version>
</dependency>
Nach dem Login kopieren

2, schreiben Sie die obige Verifizierungsschnittstelle neu und ändern Sie sie, um Feishu-Nachrichten zu empfangen. (Ändern Sie den Schnittstellenpfad nicht)

@Slf4j
@RestController
@RequestMapping(value = "/query")
public class QureyController {

public static ConcurrentLinkedQueue<FeishuResponse> consumer 
= new ConcurrentLinkedQueue<>();

@PostMapping(value = "/message")
public String message(@RequestBody String body) {
log.info("收到飞书消息:{}", body);
JSONObject jsonObject = JSONObject.parseObject(body);
JSONObject header = jsonObject.getJSONObject("header");
String eventType = header.getString("event_type");
if ("im.message.receive_v1".equals(eventType)) {
JSONObject event = jsonObject.getJSONObject("event");
JSONObject message = event.getJSONObject("message");
String messageType = message.getString("message_type");
if ("text".equals(messageType)) {
String messageId = message.getString("message_id");
String content = message.getString("content");
JSONObject contentJson = JSON.parseObject(content);
String text = contentJson.getString("text");

FeishuResponse feishuResponse = new FeishuResponse();
feishuResponse.setMessageId(messageId);
feishuResponse.setQuery(text);
log.info("投递用户消息,{}", JSON.toJSON(feishuResponse));
consumer.add(feishuResponse);
} else {
log.info("非文本消息");
}
}

return "suc";
}
}
Nach dem Login kopieren

Die Struktur von FeishuResponse ist wie folgt.

@Data
public class FeishuResponse {

private String messageId;

private String query;

}
Nach dem Login kopieren

3, schreibe einen Aufgabenthread.

@Slf4j
public class AutoSendTask implements Runnable {
//你的chatgpt的key
public static final String token = "";
public static OpenAiService openAiService = null;

static {
openAiService = new OpenAiService(token, Duration.ofSeconds(60));
}

@Override
public void run() {
while (true) {
try {
FeishuResponse poll = consumer.poll();
if (poll == null) {
log.info("no query,sleep 2s");
TimeUnit.SECONDS.sleep(2);
} else {
String query = this.query(poll.getQuery());
this.reply(poll, query);
}
} catch (InterruptedException e) {
log.error("Thread exception...", e);
}
}
}

private String query(String q) {
log.info("开始提问:{}", q);
CompletionRequest completionRequest = CompletionRequest.builder()
.prompt(q)
.model("text-davinci-003")
.maxTokens(2048)
.echo(false)
.build();
StringBuilder sb = new StringBuilder();
CompletionResult completion = openAiService.createCompletion(completionRequest);
log.info("q:{},获取响应:{}", q, JSON.toJSONString(completion));
completion.getChoices().forEach(v -> {
sb.append(v.getText());
});
String rs = sb.toString();
if (rs.startsWith("?")) {
rs = rs.replaceFirst("?", "");
}
if (rs.startsWith("nn")) {
rs = rs.replaceFirst("nn", "");
}
log.info("格式化后的rs:{}", rs);
return rs;
}

private String reply(FeishuResponse poll, String rs) {
JSONObject params = new JSONObject();
params.put("uuid", RandomUtil.randomNumbers(10));
params.put("msg_type", "text");

JSONObject content = new JSONObject();
content.put("text", rs);
params.put("content", content.toJSONString());

String url = String.format("https://open.feishu.cn/open-apis/im/v1/messages/%s/reply",
 poll.getMessageId());
String tenantAccessToken = FeishuUtils.getTenantAccessToken();
String body = null;
try (HttpResponse authorization = HttpUtil.createPost(url)
.header("Authorization", "Bearer " + tenantAccessToken)
.body(params.toJSONString())
.execute()) {
body = authorization.body();
}

return body;
}

}
Nach dem Login kopieren

Die Tool-Klasse zum Erhalten des Feishu-Tokens lautet wie folgt:

@Slf4j
public class FeishuUtils {

public static final String tokenUrl
= "https://open.feishu.cn/open-apis/auth/v3/app_access_token/internal/";
//构建一个cache 缓存飞书的token
static Cache<String, String> tokenCache =
CacheBuilder.newBuilder().expireAfterWrite(Duration.ofSeconds(3500)).build();
//这个是飞书应用的appid和key,可以在创建的飞书应用中找到
public static final String appId = "";
public static final String appKey = "";

public static String getTenantAccessToken() {
String token = null;
try {
token = tokenCache.get("token", () -> {
JSONObject params = new JSONObject();
params.put("app_id", appId);
params.put("app_secret", appKey);
String body;
try (HttpResponse execute = HttpUtil.createPost(tokenUrl)
.body(params.toJSONString()).execute()) {
body = execute.body();
}
log.info("获取飞书token:{}", body);
if (StrUtil.isNotBlank(body)) {
String tenantAccessToken = JSON.parseObject(body).getString("tenant_access_token");
tokenCache.put("token", tenantAccessToken);
return tenantAccessToken;
}
return null;
});
} catch (ExecutionException e) {
throw new RuntimeException(e);
}
return token;
}
}
Nach dem Login kopieren

4, starten Sie einfach die Thread-Klasse.

Code beigefügt, detaillierte Schritte zum Verbinden von ChatGPT mit Feishu

Abschließend wird aus Datenschutzgründen der Effekt des Chatgpt-Gruppengesprächs nicht angezeigt.

Code beigefügt, detaillierte Schritte zum Verbinden von ChatGPT mit Feishu

Endlich

Da wir chatgpt nur mit einer Testeinstellung eingeführt haben, ist der Code relativ grob, wenn ja, hoffe ich Jeder wird mir verzeihen, wenn ich etwas Schlechtes schreibe.

Der Code in diesem Artikel führt auch zusätzliche Gläser ein: guava, hutool-all und fastjson.

Das obige ist der detaillierte Inhalt vonCode beigefügt, detaillierte Schritte zum Verbinden von ChatGPT mit Feishu. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Mit ChatGPT können kostenlose Benutzer jetzt Bilder mithilfe von DALL-E 3 mit einem Tageslimit generieren Mit ChatGPT können kostenlose Benutzer jetzt Bilder mithilfe von DALL-E 3 mit einem Tageslimit generieren Aug 09, 2024 pm 09:37 PM

DALL-E 3 wurde im September 2023 offiziell als deutlich verbessertes Modell gegenüber seinem Vorgänger eingeführt. Er gilt als einer der bisher besten KI-Bildgeneratoren und ist in der Lage, Bilder mit komplexen Details zu erstellen. Zum Start war es jedoch exklusiv

Die perfekte Kombination aus ChatGPT und Python: Erstellen eines intelligenten Kundenservice-Chatbots Die perfekte Kombination aus ChatGPT und Python: Erstellen eines intelligenten Kundenservice-Chatbots Oct 27, 2023 pm 06:00 PM

Die perfekte Kombination aus ChatGPT und Python: Erstellen eines intelligenten Kundenservice-Chatbots Einführung: Im heutigen Informationszeitalter sind intelligente Kundenservicesysteme zu einem wichtigen Kommunikationsinstrument zwischen Unternehmen und Kunden geworden. Um den Kundenservice zu verbessern, greifen viele Unternehmen auf Chatbots zurück, um Aufgaben wie Kundenberatung und Beantwortung von Fragen zu erledigen. In diesem Artikel stellen wir vor, wie Sie mithilfe des leistungsstarken ChatGPT-Modells und der Python-Sprache von OpenAI einen intelligenten Kundenservice-Chatbot erstellen und verbessern können

Kann Chatgpt in China verwendet werden? Kann Chatgpt in China verwendet werden? Mar 05, 2024 pm 03:05 PM

chatgpt kann in China verwendet werden, kann jedoch nicht registriert werden. Wenn Benutzer sich registrieren möchten, können sie zur Registrierung eine ausländische Mobiltelefonnummer verwenden. Beachten Sie, dass während des Registrierungsprozesses auf die Netzwerkumgebung umgestellt werden muss eine fremde IP.

So installieren Sie ChatGPT auf einem Mobiltelefon So installieren Sie ChatGPT auf einem Mobiltelefon Mar 05, 2024 pm 02:31 PM

Installationsschritte: 1. Laden Sie die ChatGTP-Software von der offiziellen ChatGTP-Website oder dem mobilen Store herunter. 2. Wählen Sie nach dem Öffnen in der Einstellungsoberfläche die Sprache aus. 3. Wählen Sie in der Spieloberfläche das Mensch-Maschine-Spiel aus 4. Geben Sie nach dem Start Befehle in das Chatfenster ein, um mit der Software zu interagieren.

So entwickeln Sie einen intelligenten Chatbot mit ChatGPT und Java So entwickeln Sie einen intelligenten Chatbot mit ChatGPT und Java Oct 28, 2023 am 08:54 AM

In diesem Artikel stellen wir vor, wie man intelligente Chatbots mit ChatGPT und Java entwickelt, und stellen einige spezifische Codebeispiele bereit. ChatGPT ist die neueste Version des von OpenAI entwickelten Generative Pre-Training Transformer, einer auf neuronalen Netzwerken basierenden Technologie für künstliche Intelligenz, die natürliche Sprache verstehen und menschenähnlichen Text generieren kann. Mit ChatGPT können wir ganz einfach adaptive Chats erstellen

So verwenden Sie ChatGPT und Python, um die Funktion zur Erkennung von Benutzerabsichten zu implementieren So verwenden Sie ChatGPT und Python, um die Funktion zur Erkennung von Benutzerabsichten zu implementieren Oct 27, 2023 am 09:04 AM

So verwenden Sie ChatGPT und Python, um die Funktion zur Erkennung von Benutzerabsichten zu implementieren. Einführung: Im heutigen digitalen Zeitalter ist die Technologie der künstlichen Intelligenz in verschiedenen Bereichen nach und nach zu einem unverzichtbaren Bestandteil geworden. Unter anderem ermöglicht die Entwicklung der Technologie zur Verarbeitung natürlicher Sprache (Natural Language Processing, NLP), dass Maschinen menschliche Sprache verstehen und verarbeiten können. ChatGPT (Chat-GeneratingPretrainedTransformer) ist eine Art von

So erstellen Sie einen intelligenten Kundendienstroboter mit ChatGPT PHP So erstellen Sie einen intelligenten Kundendienstroboter mit ChatGPT PHP Oct 28, 2023 am 09:34 AM

So bauen Sie mit ChatGPTPHP einen intelligenten Kundendienstroboter. Einführung: Mit der Entwicklung der Technologie der künstlichen Intelligenz werden Roboter zunehmend im Bereich Kundendienst eingesetzt. Der Einsatz von ChatGPTPHP zum Aufbau eines intelligenten Kundendienstroboters kann Unternehmen dabei helfen, effizientere und personalisiertere Kundendienste anzubieten. In diesem Artikel wird erläutert, wie Sie mit ChatGPTPHP einen intelligenten Kundendienstroboter erstellen, und es werden spezifische Codebeispiele bereitgestellt. 1. Installieren Sie ChatGPTPHP und nutzen Sie ChatGPTPHP, um einen intelligenten Kundendienstroboter aufzubauen.

ChatGPT ist jetzt mit der Veröffentlichung einer speziellen App für macOS verfügbar ChatGPT ist jetzt mit der Veröffentlichung einer speziellen App für macOS verfügbar Jun 27, 2024 am 10:05 AM

Die ChatGPT-Mac-Anwendung von Open AI ist jetzt für alle verfügbar, während sie in den letzten Monaten nur denjenigen mit einem ChatGPT Plus-Abonnement vorbehalten war. Die App lässt sich wie jede andere native Mac-App installieren, sofern Sie über ein aktuelles Apple S verfügen

See all articles