Here’s a snippet that lets you modify the text sent to Pinecone when using embeddings. This is a proof of concept and a starting point for customizing the way context is retrieved for your chatbots.
class EmbeddingsExtension {
private $maxContextLength;
private $botId;
private $embeddingsName;
private $addString;
public function __construct($botId, $embeddingsName, $maxContextLength, $addString) {
$this->botId = $botId;
$this->embeddingsName = $embeddingsName;
$this->maxContextLength = $maxContextLength;
$this->addString = $addString;
add_filter('mwai_ai_query', array($this, 'mwai_ai_query'), 99999, 1);
}
public function get_id($query) {
$postData = file_get_contents('php://input');
$decodedData = json_decode($postData, true);
$customId = (isset($decodedData['customId']) && !empty($decodedData['customId'])) ? $decodedData['customId'] : null;
$botId = $customId ? $attr['custom_id'] : (isset($query->botId) ? $query->botId : 'default');
return $botId;
}
public function get_embedding_id($name) {
global $mwai_core;
$envs = $mwai_core->get_option( 'embeddings_envs' );
foreach ( $envs as $env ) {
if ( $env['name'] === $name ) {
return $env['id'];
}
}
return null;
}
public function mwai_ai_query($query) {
if (!($query instanceof Meow_MWAI_Query_Text) && !($query instanceof Meow_MWAI_Query_Assistant)) { return $query; }
if ($this->botId == $this->get_id($query)) {
$embeddingId = $this->get_embedding_id($this->embeddingsName);
if (!$embeddingId) {
throw new Exception('Embeddings environment not found');
}
$params = array('embeddingsEnvId' => $embeddingId, 'contextMaxLength' => round($this->maxContextLength));
$contextQuery = new Meow_MWAI_Query_Text( $query->message . '\n' . $this->addString );
global $mwai_core;
$context = $mwai_core->retrieve_context( $params, $contextQuery );
if ( !empty( $context ) ) {
$query->context = trim($query->context . "\n" . $context['content']);
}
}
return $query;
}
}
// EDITABLE
$botId = 'chatbot-embeddings-test';
$embeddingsName = 'MyPineconeEnvironment';
$maxContextLength = 50000;
$addString = 'Extra Text To Add To Embedding Query Here';
// END EDITABLE
$embeddingAddon = new EmbeddingsExtension($botId, $embeddingsName, $maxContextLength, $addString);
Let’s enhance your business! I can help you develop custom AI engine extensions or broader AI strategies.

Leave a Reply