|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Nachrichtenartikel zu Kryptowährungen
Kontext effektiv mit dem Modellkontextprotokoll verwalten
Apr 28, 2025 at 02:32 pm
In diesem Tutorial führen wir Sie durch eine praktische Implementierung des Modellkontextprotokolls (MCP), indem wir einen ModellcontextManager erstellen

```python
`` `Python
import torch
Taschenlampe importieren
import numpy as np
Numph als NP importieren
import typing
Typisierung importieren
from dataclasses import dataclass
aus DataClasses importieren Sie DataClass
import time
Importzeit
import gc
GC importieren
from tqdm.notebook import tqdm
von tqdm.notebook import TQDM
from sentence_transformers import SentenceTransformer
Aus Satz_Transformers importieren
from transformers import GPT2Tokenizer, FLAN_T5ForConditionalGeneration, AutoTokenizer, AutoModelForSeq2SeqLM
Aus Transformatoren importieren Sie GPT2Tokenizer, flan_t5forconditionalgeneration, autotokenizer, automodelforseq2seqlm
import math
Mathematik importieren
MAX_TOKENS = 8000
Max_tokens = 8000
DEVICE = 'cuda' if torch.cuda.is_available() else 'cpu'
Device = 'CUDA' if fackel.cuda.is_available () else 'cpu' '
NUM_CHUNKS = 50
Num_chunks = 50
CHUNK_SIZE = 100
Chunk_size = 100
RELEVANCE_THRESHOLD = 0.1
Relevance_threshold = 0,1
IMPORTANCE_FACTOR = 1.0
Bedeutung_FACTOR = 1.0
RECENCY_FACTOR = 0.5
Wiederholung_Factor = 0,5
VISUALIZE_CONTEXT = True
Visualisieren_context = true
BATCH_SIZE = 32
Batch_size = 32
class ContextChunk(typing.NamedTuple):
Klassenkontextchunk (typing.namedtuple):
content: str
Inhalt: str
embedding: np.array
Einbettung: NP.Array
importance: float = 1.0
Bedeutung: float = 1,0
timestamp: float = time.time()
Zeitstempel: float = time.time ()
metadata: dict = None
Metadaten: dikte = keine
def __post_init__(self):
def __post_init __ (self):
if self.metadata is None:
Wenn self.metadata keine ist:
self.metadata = {}
self.metadata = {}
class ModelContextManager:
KlassenmodellContextManager:
def __init__(self, context_chunks:typing.List[ContextChunk]=None, max_tokens:int=MAX_TOKENS, token_limit:int=0, gpt2_tokenizer:GPT2Tokenizer=None):
def __init __ (self, context_chunks: typing.list [contextChunk] = none, max_tokens: int = max_tokens, token_limit: int = 0, gpt2_tokenizer: gpt2Tokenizer = keine):
self.max_tokens = max_tokens
self.max_tokens = max_tokens
self.token_limit = token_limit
self.token_limit = token_limit
self.context_chunks = context_chunks or []
self.context_chunks = context_chunks oder []
self.used_tokens = 0
self.used_tokens = 0
self.last_chunk_index = 0
self.last_chunk_index = 0
self.total_chunks = 0
self.total_chunks = 0
if gpt2_tokenizer is None:
Wenn gpt2_tokenizer keine ist:
self.gpt2_tokenizer = GPT2Tokenizer.from_pretrained("gpt2")
self.gpt2_tokenizer = gpt2Tokenizer.from_Pretrained ("gpt2")
else:
anders:
self.gpt2_tokenizer = gpt2_tokenizer
self.gpt2_tokenizer = gpt2_tokenizer
self.sentence_transformer = SentenceTransformer('all-mpnet-base-v2')
self.Stentence_transformer = simecetransformer ('All-MPNET-Base-V2')
def add_chunk(self, chunk_text:str, importance:float=1.0):
Def add_chunk (self, chunk_text: str, Bedeutung: float = 1.0):
encoded_input = self.gpt2_tokenizer(chunk_text, return_tensors='pt')
coded_input = self.gpt2_tokenizer (chunk_text, return_tensors = 'pt'))
self.used_tokens += int(encoded_input[0].shape[1])
self.used_tokens += int (coded_input [0] .Shape [1])
chunk_embedding = self.sentence_transformer.encode(chunk_text, batch_size=BATCH_SIZE)
chunk_embedding = self.Stence_transformer.encode (chunk_text, batch_size = batch_size)
new_chunk = ContextChunk(content=chunk_text, embedding=chunk_embedding, importance=importance)
new_chunk = contextChunk (content = chunk_text, einbetting = chunk_embedding, Bedeutung = Bedeutung)
self.context_chunks.append(new_chunk)
self.context_chunks.append (new_chunk)
self.last_chunk_index += 1
self.last_chunk_index += 1
self.total_chunks += 1
self.total_chunks += 1
print(f"Added chunk with {int(encoded_input[0].shape[1])} tokens and importance {importance}. Total used tokens: {self.used_tokens}, total chunks: {self.total_chunks}")
print (f "Chunk mit {int (coded_input [0].
def optimize_context_window(self, query:str, min_chunks:int=3):
Def optimize_context_window (self, query: str, min_chunks: int = 3):
if len(self.context_chunks) <= min_chunks:
Wenn len (self.context_chunks) <= min_chunks:
return []
zurückkehren []
query_embedding = self.sentence_transformer.encode(query, batch_size=BATCH_SIZE)
query_embedding = self.Stence_transformer.encode (Abfrage, batch_size = batch_size)
chunks_to_keep = []
Chunks_to_keep = []
remaining_tokens = self.max_tokens - self.used_tokens
restern_tokens = self.max_tokens - self.used_tokens
if remaining_tokens < 0:
Wenn restlich_tokens <0:
print("Warning: token limit exceeded by %s tokens" % -remaining_tokens)
Print ("Warnung: Token -Grenze über % s Tokens" % -Remaining_tokens überschritten)
for i in range(min_chunks, len(self.context_chunks) - 1, -1):
für i in Bereich (min_chunks, len (self.context_chunks) - 1, -1):
chunk = self.context_chunks[i]
chunk = self.context_chunks [i]
if i == len(self.context_chunks) - 1:
Wenn i == len (self.context_chunks) - 1:
chunks_to_keep.append(i)
Chunks_to_keep.append (i)
continue
weitermachen
chunk_importance = chunk.importance * IMPORTANCE_FACTOR
chunk_importance = chunk.importance * sorgeance_factor
chunk_recency = (time.time() - chunk.timestamp) * RECENCY_FACTOR
chunk_recency = (time.time () - chunk.timestamp) * recyc_factor
relevant_scores = np.array([cosine_similarity(chunk.embedding, x) for x in query_embedding])
relevant_scores = np.Array ([coine_similarity (chunk.embedding, x) für x in query_embedding]))
max_relevant_score = np.max(relevant_scores)
max_relevant_score = np.max (relevant_scores)
total_score = chunk_importance + chunk_recency + max_relevant_score
Total_score = Chunk_importance + Chunk_Reczy + max_relevant_score
if total_score >= RELEVANCE_THRESHOLD:
Wenn total_score> = relevance_threshold:
encoded_input = self.gpt2_tokenizer(chunk.content, return_tensors='pt')
coded_input = self.gpt2_tokenizer (chunk.content, return_tensors = 'pt'))
chunk_token_count = int(encoded_input[0].shape[1])
Chunk_Token_Count = int (coded_input [0] .Shape [1])
if remaining_tokens >= chunk_token_count:
Wenn Sie restlich_tokens> = chunk_token_count:
chunks_to_keep.append(i)
Chunks_to_keep.append (i)
remaining_
übrig_
Haftungsausschluss:info@kdj.com
Die bereitgestellten Informationen stellen keine Handelsberatung dar. kdj.com übernimmt keine Verantwortung für Investitionen, die auf der Grundlage der in diesem Artikel bereitgestellten Informationen getätigt werden. Kryptowährungen sind sehr volatil und es wird dringend empfohlen, nach gründlicher Recherche mit Vorsicht zu investieren!
Wenn Sie glauben, dass der auf dieser Website verwendete Inhalt Ihr Urheberrecht verletzt, kontaktieren Sie uns bitte umgehend (info@kdj.com) und wir werden ihn umgehend löschen.
-
- MORPHO-Token erlebt einen Rückgang: Entschlüsselung des Morpho-Preisrückgangs inmitten breiterer Marktunruhen
- Oct 30, 2026 at 11:55 am
- Der Morpho-Token (MORPHO) verzeichnete einen Rückgang um 7,78 % und erreichte 2,01 US-Dollar, was in erster Linie auf einen vorsichtigen Kryptomarkt und nicht auf protokollspezifische Probleme zurückzuführen war, wobei die Volumenmetriken des Wash-Tradings trübten.
-
- Quantensprung: Ethereum L2 BB84 definiert Web3-Sicherheit mit signaturfreien Transaktionen und Sitzungsschlüsseln neu
- Oct 30, 2026 at 04:05 am
- BB84, ein Ethereum Layer 2, leistet Pionierarbeit bei einem signaturfreien Ansatz für Transaktionen mithilfe von Hash-Ketten, bekämpft Quantenbedrohungen und verbessert das Benutzererlebnis durch Reduzierung der Gasgebühren und Rationalisierung der Interaktionen mit Sitzungsschlüsseln.
-
- Der CTO von Finastra schlägt Alarm wegen KI-Betrug: Die Erkennung von KI-Betrug erfordert mehr Prozess als Perfektion
- Oct 30, 2026 at 04:05 am
- Mike Stawchansky, CTO von Finastra, betont die zunehmende Komplexität von KI-Betrügereien und betont die Notwendigkeit robuster Prozesse anstelle von Erkennungstools, um sie zu bekämpfen.
-
- Solana, Polygon-Marketingstrategie: Eine Blockbuster-Blaupause für Web3-Engagement
- Oct 30, 2026 at 04:05 am
- Die jüngste „Rivalität-zu-Partnerschaft“-Kampagne von Solana und Polygon stellt eine revolutionäre Marketingstrategie vor, die Community-Überlieferungen nutzt, um Spannung, Vorfreude und letztendlich eine kraftvolle Enthüllung zu erzeugen, die über traditionelle Produktankündigungen hinausgeht.
-
- Stanley Druckenmiller setzt auf 24/7-Handel: Die nächste Investition signalisiert eine Verschiebung des Marktzugangs
- Oct 30, 2026 at 12:05 am
- Die jüngste Investition von Stanley Druckenmiller in Trade[XYZ] signalisiert einen bedeutenden Schritt hin zum 24/7-Futures-Handel in den USA und könnte möglicherweise die Anlagestrategien neu gestalten.
-
- LBank steigert die Markenidentität über den Handel hinaus: Einführung eines ganzheitlichen Krypto-Ökosystems
- Oct 26, 2026 at 11:55 am
- Die LBank definiert ihre Markenidentität neu und geht über den bloßen Handel hinaus, um die expansive Rolle von Krypto in den Bereichen Gaming, Zahlungen und Eigentum zu berücksichtigen.
-
- Keystone-Verstoß: Kundendatenleck löst Sicherheitsbedenken bei Hardware-Wallets aus
- Oct 26, 2026 at 11:55 am
- Der jüngste Datenverstoß von Keystone, bei dem Versandinformationen von Kunden offengelegt wurden, verdeutlicht die zunehmenden Sicherheitsrisiken für Benutzer von Krypto-Hardware-Wallets und wirft kritische Fragen zur Datenaufbewahrung und Benutzersicherheit auf.
-
- Die Politik der Fed belastet den Kryptowährungsmarkt, da der Sektor für digitale Vermögenswerte vor wichtigen Entscheidungen steht
- Oct 26, 2026 at 11:45 am
- Die Erwartung steigt, dass sich die Politik der Federal Reserve ändert und Technologiegewinne erzielt werden, was sich auf den Kryptowährungsmarkt und den Sektor der digitalen Vermögenswerte auswirkt.
-
- Solana Company schließt sich Hongkongs Elite Strategic Enterprises an und stärkt die Web3-Präsenz
- Oct 26, 2026 at 11:35 am
- Die an der Nasdaq notierte Solana Company (HSDT) wurde als strategisches Unternehmen in Hongkong anerkannt, was einen bedeutenden Schritt zur Festigung der Rolle der Stadt als Web3-Hub signalisiert.

































