Combine the almond flour, optional cocoa, allulose, cinnamon, and salt with a whisk, then work in the egg, melted butter, vanilla, and vinegar; add water only if necessary, 1 tbsp at a time within the listed amount, before wrapping the dough in plastic and refrigerating for 30 minutes. The dough should press into a cohesive mass without leaving a sticky coating on your fingers.
Roll the cold dough between parchment sheets to about 1/8-inch thickness, cut 3–4-inch rounds, and curve each round around a metal cannoli mold, moistening the overlapping edges with water to seal. A smooth overlap without a split or open gap helps the shell retain its tube shape.
Bring the frying oil to 350°F and cook the molded shells for 1–2 minutes, then lift them out, carefully release them from the molds, and leave them to cool completely; alternatively, bake the shaped shells at 375°F for 8–10 minutes. Look for a golden, crisp surface, and protect your hands from the hot metal when easing off each shell.
Beat the ricotta, heavy cream, allulose, vanilla, and cinnamon into an airy mixture, gently incorporate the optional chocolate chips, and refrigerate the filled piping bag for at least 30 minutes. The chilled cream should hold a soft mound rather than run flat.
Fill the completely cooled shells with the chilled cream, finish with extra allulose or sugar-free chocolate chips at the ends if desired, and serve immediately. The filling should reach through the center while the pastry remains crisp around it.